Django迁移,解决合并问题



当我更改模型和迁移时,我收到了一个错误消息:

python manage.py makemigrations project_profile

CommandError:检测到的迁移相互冲突;迁移图中的多个叶子节点:(0033_AUTO_20180217_0912,0036_AUTO_20180217_0927在Project_profile中(。为了修复它们运行'python manage.py makemigrations -merge'

因此,当我尝试遵循说明时,我遇到了另一个错误,我的一张表格迁移现在是不再存在的(我重命名的(。有趣的是,这种重命名是在合并操作期间进行的。因此,Django确实应该首先知道它。

为了解决这种情况,我删除了先前的迁移,包括未应用的迁移,这是引起所有头痛的迁移。我试图进行迁移并再次迁移。但是,Django现在引发了另一个错误,说它已经在数据库中创建的一些模型已经存在。显然,我不想删除那些表格并放松所有信息以安抚Django。因此,我不得不求助于一些黑客解决方案,并实际上手动更改这些桌子,并进行假迁移以阻止Django抱怨。

说了所有这一切,我觉得应该有一种更合乎逻辑的方法。在合并期间如何解决迁移?

我也遇到了相同的问题,然后我能够通过删除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

最新更新