概要
- Djangoで
migration
ファイルを削除すると、うまくマイグレートすることができなくなりました。migration
ファイル削除による影響を記載します。
マイグレーションファイルの詳細:
- Djangoがデータベーススキーマの変更を記録するためのファイル。
- 変更=フィールドの追加やモデルの削除など
- ファイルは、「アプリ名/migrations/」以下に保存されます。
- ファイル名は、「マイグレーション番号_マイグレーション名.py」という形式(番号が実行順序)になります。
migration
ファイルを削除すると...
- ネットの記事で「マイグレーションファイルを削除して再度マイグレーションすることができる」みたいな文章を見かけるのですが、自分のdocker環境では一度消して再度実行すると、マイグレーションファイルは作成されマイグレーション履歴まで表示されているのに、実行結果は
no migrations to apply
と返ってきてしまいました。
原因は?
- おそらく、マイグレーション履歴テーブルに既にそのマイグレーションが適用されたことが記録されているため、再度マイグレーションを実行する必要がないと判断された?のだと思います。
- DB削除してコンテナ起動し直すと、無事に実行できましたが、マイグレーションファイルはdjangoとDBの不仲を生み出す可能性がある存在なので、迂闊にいじらない方がいいなと思います。ローカル環境なので好きに触っていますが、本番ではバックアップ取らずにいじると大変なことになるでしょう...。マイグレーションファイルの削除は最後の手段ですね。