撤消或重置django中的伪造迁移

时间:2015-07-30 18:18:09

标签: python django django-models

在我基于django-1.8.2的项目中,我遇到了一些迁移问题,所以我运行了命令

python manage.py migrate --fake

但它伪造了此命令所针对的所有迁移。但是现在python manage.py migrate命令没有执行或应用任何迁移。我想撤消伪造的迁移,以便我可以将迁移应用于数据库。我想将现有的迁移应用到数据库中。

2 个答案:

答案 0 :(得分:7)

对于每个应用程序,您可以将迁移伪造回伪造它们之前的位置。

python manage.py migrate --fake myapp 00XX_last_migration

其中00XX_last_migration是您实际为应用myapp运行的最后一次迁移。

或者,如果您还没有真正为该应用运行任何迁移:

python manage.py migrate --fake myapp zero

答案 1 :(得分:4)

来自the docs

  

请注意,使用--fake会冒着将迁移状态表置于需要手动恢复以使迁移正常运行的状态的风险。

因此,我建议您只需从django_migrations表中删除伪造的迁移。