🕌

つぶやきマイグレーション【Django】

2021/04/09に公開

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

ログインするとコメントできます