0
1

More than 3 years have passed since last update.

Django初心者がつまずいたmodelsを変更した際にmigrateができない!?

Posted at

環境
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ができません...
スクリーンショット 2021-07-10 19.37.29.png

よく考えれば当たり前のことなのですがテーブルが前のままなので結局変更できないんですね。
ということはデータベースをまた作り直すのか...と思っていたのですがそんなことはありませんでした。

スクリーンショット 2021-07-10 20.01.55.png

python manage.py migrate [削除したアプリ名] zero

でテーブルをリセットすることができました。
これで無事migrateをやり直し、modelsを新たに反映させることができました。
スクリーンショット 2021-07-10 20.02.34.png

0
1
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
1