環境
macOS Big Sur
python 3.8.5
django version 3.0.5
Djangoでデータベースを作成する際に便利なmodelsですが、変更や修正を加えた時にちょっと難しいなと思った場面があったので記事にまとめてみました。
まず現在のテーブルに入ってるカラムに新しいカラムを追加をする更新は簡単にできるみたいなのですが、
現在のテーブルにあるカラム自体に変更を加えると何やらめんどくさいことになるようです。
(例えばカラム名を変更したり、カラムのfieldを変更したり)
※詳細はこちらのサイトをご参考ください
https://kunimiya.hatenablog.com/entry/20080726/p1
なので大胆に仕様変更する場合には一度migrationフォルダにあるinitial.pyを削除してmakemigrationsした方が早いことが分かったのですが、ここで問題が発生!
makemigrationsはできるけど...migrateができません...
よく考えれば当たり前のことなのですがテーブルが前のままなので結局変更できないんですね。
ということはデータベースをまた作り直すのか...と思っていたのですがそんなことはありませんでした。
python manage.py migrate [削除したアプリ名] zero
でテーブルをリセットすることができました。
これで無事migrateをやり直し、modelsを新たに反映させることができました。