Django迁移,解决合并问题

时间:2018-02-21 15:05:16

标签: django django-migrations

当我更改models.py和迁移时,我收到一条错误消息:

  

python manage.py makemigrations project_profile

     

CommandError:检测到冲突的迁移;迁移图中的多个叶节点:(project_profile中的0033_auto_20180217_0912,0036_auto_20180217_0927)。   要修复它们,请运行'python manage.py makemigrations --merge'

因此,当我尝试按照说明操作时,我得到了另一个错误,即我的某个表现在依赖的合并迁移不再存在(我将其重命名)。有趣的是,这次重命名发生在合并操作期间。所以,Django真的应该首先了解它。

为了解决这种情况,我删除了之前的迁移,包括未应用的迁移,这是导致所有人头疼的迁移。我试图制作迁移并再次迁移。但是,Django现在抛出另一个错误,说它想要在数据库中创建的一些模型已经存在。显然,我不想删除那些表并且放弃所有这些信息来安抚Django。因此,我不得不求助于一些黑客攻击解决方案并实际上手动更改这些表并进行虚假迁移以阻止Django抱怨。

说完所有这些之后,我觉得应该有更合乎逻辑的方法。如何在合并期间解决迁移?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,然后我可以通过删除django指出并以名称auto开头的迁移文件来解决此问题。它发生了2-3次后才最终放弃并最终起作用。

或者,您可以django-dbbackupdjango-import-export软件包来备份表,然后清理数据库并进行迁移。然后,一旦迁移稳定,您就可以将它们恢复到相同的状态。

来源

dbbackup:https://django-dbbackup.readthedocs.io/en/stable/

import-export:https://django-import-export.readthedocs.io/en/latest/index.html