跳过Django中的迁移列表

时间:2016-10-06 08:16:41

标签: python django django-models django-migrations

我在第三方应用中进行了迁移0001_something0002_something0003_something,并且所有这些应用都由我自己的应用应用于数据库。我只是想跳过这三次迁移。一种选择是运行以下命令

python manage.py migrate <third_party_app_name> 0003 --fake

但我不想手动运行此命令。我在想是否可以通过任何方法在设置中指定某些内容来跳过这些迁移。我只需运行python manage.py migrate,它就会自动识别需要伪造3次迁移。或者,如果有任何方法可以假冒000100020003

如果这是我自己的应用程序,我可以简单地删除迁移文件,但它是通过安装的第三方应用程序。 pip并且我不想改变它。

3 个答案:

答案 0 :(得分:1)

如果你真的想这样做。试试

  • django_migrations表中添加条目,如

    app                 name                         applied
    <thirdpartyname>    003_something #without .py   2014-04-16 14:12:30.839899+08 #some date before now
    

答案 1 :(得分:1)

django只通过迁移历史记录表了解应用的迁移。因此,如果没有关于已应用迁移的记录,则会认为未应用此迁移。 Django不会根据迁移文件检查真正的db状态。

答案 2 :(得分:1)

MIGRATION_MODULES设置允许您为应用的迁移指定备用模块。您可以为您的应用设置此项,然后省略要跳过的迁移,或将其替换为空迁移。