djangoのマイグレーションがややこしい!

djangoのマイグレーションがややこしい!

1, models.pyで、モデル定義(テーブル定義)
2, python manage.py makemigrationsコマンドで、migrations/0001_initial.pyにマイグレーション定義が自動生成される。
3, python manage.py migrateで、実際のDBに反映される(SQL実行)

4, models.pyで、モデル定義(テーブル定義)を再定義(追加・修正・削除)
5, python manage.py makemigrationsコマンドで、先に作られた0001_initial.pyを前提にした、migrations/0002_修正内容.pyにマイグレーション定義が自動生成される。

なので、この時点でDBを全削除とかしていると0002_修正内容.pyがエラーになる(先に作られた0001_initial.pyを前提にしているので)

さらに単純に0001_initial.pyを削除して、python manage.py makemigrationsコマンドで再構築しても、そのマイグレーションファイルは実行済みとDBに記録されているのでpython manage.py migrateしても何も実行されない。

結論としては、
1, DB全削除
2, migrations/0001_initial.py以降のファイル削除
3, この状態で、python manage.py makemigrations && python manage.py migrate すれば、修正したモデルがDBに反映される。