首先,我问的是 1.7 中引入的 Django 迁移,而不是 south
。
假设我有迁移001_add_field_x
、002_add_field_y
,并且它们都应用于数据库。现在我改变主意,决定恢复第二次迁移并用另一个迁移003_add_field_z
替换它。
也就是说,我想申请001和003,跳过002,怎么办?
附:我知道我可以向后迁移到 001,但是在我进行 003 迁移并执行迁移命令后,001 到 003 将全部应用,对吗?
最佳答案
您可以使用 --fake
选项。
一旦你恢复到 0001
你就可以运行
python manage.py migrate <app> 0002 --fake
然后运行
python manage.py migrate <app> #Optionally specify 0003 explicitly
在这种情况下仅适用于 0003
。
如果您不想为所有环境/其他开发人员遵循此过程,您可以删除迁移文件,然后运行新的 makemigration
,然后提交该文件 - 是的,执行使用 --fake
选项运行 migrate
文档:https://docs.djangoproject.com/en/3.1/ref/django-admin/#cmdoption-migrate-fake
关于python - 如何使用 Django migrate 命令跳过迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31369466/