0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OperationalError no such column migrateがモデルに反映されなかったことの解決法

Posted at

Djangoでバックエンドの開発中、

OperationalError at 〇〇
no such column: 〇〇

といったエラーが出ることがよくあります。

普段はこのエラーに対して、migrationファイルを削除し、データベースのデータを初期化する

python manage.py flush

を実行した後、

python manage.py make migrations
python manage.py migrate

でマイグレートしなおすと、動く場合が多かったです。

今回のエラーはそれでは対応できず、
migrationファイルには正しくcolumnが書かれているのに、
データベースには反映されていないことがわかりました。

そこで、

python manage.py --fake app_name zero

を実行すると

  Rendering model states... DONE
  Unapplying admin.0003_logentry_add_action_flag_choices... FAKED
  Unapplying admin.0002_logentry_remove_auto_add... FAKED
  Unapplying admin.0001_initial... FAKED
  Unapplying app.0001_initial... FAKED

と表示され、これでもエラーがでていたので
データベースを手動削除したところ解決しました。

※この記事を書いているときに「はじめからデータベースを手動削除していれば解決したのかも」と思いました。

原因としてはmigrateを何度もして、migrationファイルを削除したり、データを初期化していた結果、残っていたキャッシュで整合性がとれなくなってしまったのではないかと考えました。詳しい方がいればぜひご教授ください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?