【问题标题】:Django migrations, resolving merging problemsDjango 迁移,解决合并问题
【发布时间】:2018-08-01 05:24:43
【问题描述】:

当我更改我的 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 抱怨。

说了这么多,我觉得应该有一个更合乎逻辑的方式。合并期间如何解决迁移问题?

【问题讨论】:

    标签: django django-migrations


    【解决方案1】:

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

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

    来源

    数据库备份:https://django-dbbackup.readthedocs.io/en/stable/

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

    【讨论】:

      猜你喜欢
      • 2020-08-01
      • 2021-11-20
      • 2011-10-26
      • 1970-01-01
      • 2016-07-29
      • 2015-08-26
      • 1970-01-01
      • 2017-08-22
      相关资源
      最近更新 更多