🕌
つぶやきマイグレーション【Django】
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
Discussion