Есть способ отменить миграцию на Django и снять ее из списка showmigrations?

на самом деле, что я делаю это:

  • удалить файл миграции.
  • удалить строку из таблицы django_migrations в базе данных.
  • удалите изменения, применяемые миграцией, которые я хочу удалить или неприменимо.

Я хочу знать, есть ли другой способ сделать это.

1 ответов


вы можете вернуться назад переход к предыдущей миграции. См. папку миграции вашего приложения, а затем просмотреть все миграции

скажем, например, если ваши миграции что-то вроде ниже упорядоченного числа мудрый и последняя миграция 0012_latest_migration применяется в настоящее время.

0010_previous_migration
0011_next_migration
0012_latest_migration

и вы хотите вернуться к 0010_previous_migration

./manage.py migrate my_app 0010_previous_migration 

и затем вы можете удалить все переносы после того, как здесь удалить 0011_next_migration и 0012_latest_migration как вы уже применяли 0010_previous_migration.

если вы используете Django 1.8+, вы можете показать имена всех миграций с помощью

./manage.py showmigrations my_app

чтобы отменить все миграции для приложения до начального или запуска, вы можете запустить:

./manage.py migrate my_app zero