有一种方法可以撤消Django上的迁移并从showmigrations列表中取消选中它吗?

Cés*_*ñor 26 python migration django

实际上,我所做的是:

  • 删除迁移文件.
  • 从数据库中的django_migrations表中删除该行.
  • 删除我要删除或未应用的迁移所应用的更改.

我想知道是否有另一种方法可以做到这一点.

Ast*_*and 77

您可以通过迁移到以前的迁移来恢复.查看应用的迁移文件夹,然后查看所有迁移

举个例子,如果您的迁移类似于下面的有序数字,并且当前应用了最新的迁移0012_latest_migration.

0010_previous_migration
0011_next_migration
0012_latest_migration
Run Code Online (Sandbox Code Playgroud)

你想回到0010_previous_migration

./manage.py migrate my_app 0010_previous_migration 
Run Code Online (Sandbox Code Playgroud)

然后您可以删除之后的所有迁移,例如删除0011_next_migration和0012_latest_migration,因为您已经应用了0010_previous_migration.

如果您使用的是Django 1.8+,则可以显示所有迁移的名称

./manage.py showmigrations my_app
Run Code Online (Sandbox Code Playgroud)

要将应用程序的所有迁移撤消到初始或启动,您可以运行:

./manage.py migrate my_app zero
Run Code Online (Sandbox Code Playgroud)