つぶやきテック

日々のつぶやきアウトプット

django.db の InconsistentMigrationHistory例外に遭遇した時の対処

InconsistentMigrationHistoryとは?

  • DB内の依存関係が原因で、整合のとれたマイグレーションができなくなる 例外のよう。
  • エラーメッセージは、例えば以下のように表示されます。
django.db.migrations.exceptions.InconsistentMigrationHistory: 
Migration example_django.0001_initial is applied before its dependency sample_app.0001_initial on database 'default'.

どう対処しようか?

  • 私の場合は、settings.py の INSTALLED_APP を一時的に修正し、 マイグレーション実行後に元に戻す、という対処で解決できました。

settings.pyを一時修正

INSTALLED_APPS = [
    ...
    # 'example_django',  ←例外が発生した部分を一時的にコメントアウト
    ...
]

マイグレーションを実行

$ python manage.py makemigrations
$ python manage.py migrate

settings.py を復元

マイグレーションを再実施

  • これで整合がとれたマイグレーションができるようです。

  • 今回は こちらのサイトを参考にさせていただきました。

  • この対応でなぜ解決したのか、まだ「?」な部分も多いです。またわかったら追記していきたいと思います。