1. ホーム
  2. django

[解決済み] Django Programmingのエラーカラムが、マイグレーションを実行しても存在しない。

2022-02-07 23:42:19

質問

私は実行します python manage.py makemigrations と表示されます。 変更は検出されませんでした 次に python manage.py migrate と表示されます。 適用するマイグレーションがありません。

次に、変更を本番環境にプッシュしようとします。 git push heroku master すべて最新版

そして、本番では、このコマンドを繰り返す。 heroku run python manage.py migrate を実行します。 適用するマイグレーションはありません。

念のため makemigrations を本番で使用します。

heroku run python manage.py makemigrations
No changes detected

WHY then I get a

ProgrammingError at ....

column .... does not exist

"No changes detected"は、データベースがコードと首尾一貫していることを意味します。 どのようにデバッグすればいいのでしょうか?

解決方法は?

Django のマイグレーションは、データベースの 'django_migrations' テーブルの下に記録されます。このようにして、Django はどの移行が適用済みで、どれがまだ適用する必要があるのかを知ることができます。

DBのdjango_migrationsテーブルを見てみてください。マイグレーションを適用する際に、何か問題が発生した可能性があります。そこで、そのカラムに関連するマイグレーションファイル名を持つテーブルの行を「存在しない」ことにして削除してください。その後、マイグレーションを再実行してみてください。