我在第三方应用中进行了迁移0001_something
,0002_something
,0003_something
,并且所有这些应用都由我自己的应用应用于数据库。我只是想跳过这三次迁移。一种选择是运行以下命令
python manage.py migrate <third_party_app_name> 0003 --fake
但我不想手动运行此命令。我在想是否可以通过任何方法在设置中指定某些内容来跳过这些迁移。我只需运行python manage.py migrate
,它就会自动识别需要伪造3次迁移。或者,如果有任何方法可以假冒0001
,0002
和0003
。
如果这是我自己的应用程序,我可以简单地删除迁移文件,但它是通过安装的第三方应用程序。 pip
并且我不想改变它。
答案 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
设置允许您为应用的迁移指定备用模块。您可以为您的应用设置此项,然后省略要跳过的迁移,或将其替换为空迁移。