移行で問題が発生したため、モデルに新しいdatetimefieldを追加してから、makemigrationsを使用して移行しました。
python manage.py makemigrations
python manage.py migrate
しかし、この後、移行は「テーブルが既に存在するエラー」を取得しました。移行を偽造してやり直すことができると思っていたので、
python manage.py makemigrations --fake core
Operations to perform:
Apply all migrations: core
Running migrations:
Rendering model states... DONE
Applying core.0001_initial... FAKED
Applying core.0002_auto_20150525_1331... FAKED
Applying core.0003_auto_20150525_1348... FAKED
Applying core.0004_processo_data_atualizacao... FAKED
しかし、私が作成したばかりの新しい移行も偽造されました(もちろんです!)。
これを行った後、移行(この場合はcore.0004)をやり直す適切な方法はどうですか?
最初に--fake
を使用して現在の状態を0003に設定する必要があります(0003が実際に適用した最後の移行であると仮定します):
python manage.py migrate --fake core 0003
そして、いつものように進みます:
python manage.py migrate core
関連ドキュメント: https://docs.djangoproject.com/en/dev/ref/Django-admin/#migrate