Django マイグレーション関連のコマンド&エラー
基本の操作
マイグレーションファイルを作成
$ python manage.py makemigartions
マイグレーションファイルをDBに適用
$ python manage.py migrate (MIGRATION_ID)
マイグレーションの一覧を表示
$ python manage.py showmigrations (MIGRATION_ID)
よく出会うエラー
整合性不正によるエラー
エラーメッセージ例:
django.db.utils.ProgrammingError: relation "sample_user" does not exist LINE 1: ...user"."is_active", "sample_user"."date_joined" FROM "sample_user...
このようなエラーは、主にmigrationコマンドによるマイグレーションファイルの DBへの適用時に、その適用の順番が逆転していることが原因で発生します。
上の場合であれば、先に "sample_user" を明示的に指定して先にマイグレーション することで解消することが多いです。
# sample_userを先にマイグレーション $ python manage.py migrate sample_user # 残りをマイグレーション $ python manage.py migrate