python - 如何使用 Django migrate 命令跳过迁移?

标签 python django django-models django-migrations

首先,我问的是 1.7 中引入的 Django 迁移,而不是 south

假设我有迁移001_add_field_x002_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/

相关文章:

python - Django 测试 VS pytest

django - 在将 APIView 与 django-rest-swagger 一起使用时,如何指定 POST 请求的参数

python - 为具有多对多关系的 Django 模型编写测试

python - 使用python从大文本文件中快速提取信息

python - 如何在任意超时后停止 Python 程序

Django Rest Framework 序列化程序返回应在更新时过滤掉的嵌套记录

python - 如何通过 Django 中的外键访问过滤器参数中的数据?

python - 在 ManyToManyField 中定义最大关系

python - vscode远程容器中的自动完成python

python - 从字符串中获取多个标记的更好方法? (Python 2)