読者です 読者をやめる 読者になる 読者になる

ottatiのブログ

無職学生がネットにクソアプリをまき散らしていく様子

【Django 1.7+】Migrations機能でモデルのフィールド名を変更してmigrateする

django

f:id:ottati:20150103125718g:plain     🍣

目的

RenameFieldを使ってモデルのフィールド名を変更しmigrateする。

手法

1. フィールド名を変更

appname/models.pyのフィールド名を変更する。この時変更前のフィールド名を覚えておく。

2. 空のmigrationを作成する

空のmigrationファイルを以下で作成する。

python manage.py makemigrations --empty myApp

3. migrationファイルを編集する

先ほどのコマンドで新しく出来上がったappname/migrations/以下にあるmigrationファイルを編集する。

Migrationクラス内のoperationsリストが空になっているのでそこへ以下を記述する。

migrations.RenameField('モデルのクラス名', '旧フィールド名', '新フィールド名'),

4. migrationを適用する

python manage.py migrate アプリ名で実際にDBのスキーマを変更する。

参考