有没有办法撤消 Django 上的迁移,并从显示迁移列表中取消选中它?

事实上,我的工作是:

  • 删除迁移文件。
  • 从数据库上的 django _  中删除行。
  • 删除由迁移应用的更改,我想删除或未应用的更改。

我想知道还有没有别的办法。

67789 次浏览

您可以通过迁移到上一次迁移来恢复。查看应用程序的迁移文件夹,然后查看所有的迁移

举个例子,如果您的迁移类似于以下的顺序,并且当前应用了最新的迁移0012 _ last _ mobile。

0010_previous_migration
0011_next_migration
0012_latest_migration

并且您想要返回到0010 _ 偷前 _ 迁移

./manage.py migrate my_app 0010_previous_migration

然后您可以删除所有的迁移,就像这里一样,删除0011 _ next _  迁移和0012 _ last _ 迁移,因为您已经应用了0010 _ before _ 迁移。

如果您使用的是 Django 1.8 + ,您可以使用

./manage.py showmigrations my_app

要将应用程序的所有迁移反转为初始化或启动,可以运行:

./manage.py migrate my_app zero