web-dev-qa-db-ja.com

Djangoで移行を取り消して、showmigrationsのリストからチェックを外す方法がありますか?

実際、私がしていることは:

  • 移行ファイルを削除します。
  • データベースのDjango_migrationsのテーブルから行を削除します。
  • 移行によって適用された、削除または適用解除したい変更を削除します。

これを行う別の方法があるかどうか知りたいです。

23

前の移行に移行することで元に戻すことができます。アプリの移行フォルダーを確認してから、すべての移行を確認してください

例として、移行が以下の番号順であり、最新の移行0012_latest_migrationが現在適用されている場合を考えます。

0010_previous_migration
0011_next_migration
0012_latest_migration

そして、0010_previous_migrationに戻りたい

./manage.py migrate my_app 0010_previous_migration 

ここで、0010_next_migrationと0012_latest_migrationの両方を削除してから、すでに0010_previous_migrationを適用した後、すべての移行を削除できます。

Django 1.8+を使用している場合、すべての移行の名前を表示するには

./manage.py showmigrations my_app

アプリのすべての移行を初期または開始に戻すには、次を実行できます。

./manage.py migrate my_app zero
70
Astik Anand