【问题标题】:Fix Conflicting migrations detected in Django1.9修复 Django1.9 中检测到的冲突迁移
【发布时间】:2016-08-07 23:28:52
【问题描述】:

我更新了django-dynamic-model 存储库以支持 Django 1.9。我收到了这个错误:

CommandError: 

Conflicting migrations detected; multiple leaf nodes in the migration
graph: (0001_initial, 0002_auto__add_field_dynamicschemafield_extra in
dynamicmodel).
To fix them run 'python manage.py makemigrations --merge'

运行python manage.py makemigrations --merge后,又报错:

 File "/local/lib/python2.7/sitepackages/django/core/management/__init__.py",  
line 353, in execute_from_command_line
utility.execute()

 File "/local/lib/python2.7/sitepackages/django/core/management/__init__.py", line 345, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)

 File 
"/local/lib/python2.7/site-packages/django/core/management/base.py", line 348, in run_from_argv
self.execute(*args, **cmd_options)

File 
"/local/lib/python2.7/site-packages/django/core/management/base.py", line 399, in execute
output = self.handle(*args, **options)

File 
"/local/lib/python2.7/site-packages/django/core/management/commands/makemigrations.py", line 97, in handle
return self.handle_merge(loader, conflicts)

File 
   "/local/lib/python2.7/site-packages/django/core/management/commands/makemigrations.py", line 216, in handle_merge
 raise ValueError("Could not find common ancestor of %s" % migration_names)


 ValueError: Could not find common ancestor of set([u'0001_initial', u'0002_auto__add_field_dynamicschemafield_extra']). 

帮我找到解决办法。

【问题讨论】:

标签: python django django-models django-migrations


【解决方案1】:

好像您注入了其他应用程序的模型。

在您的迁移中定义 TARGET_APP,似乎迁移加载器无法正确识别目标应用。

【讨论】:

  • 什么是TARGET_APP?我在 Django 1.8 上并试图在 --merge 之后明确给出应用程序名称,但这也没有帮助
  • 我明白了,TARGET_APP 是迁移文件中的变量,而不是迁移脚本的参数stackoverflow.com/questions/29575802/…
【解决方案2】:

迁移需要有“直接”的依赖链,即迁移 0003 需要依赖于迁移 0002,而 0002 需要依赖于 0001。

您需要像这样在 0003_third.py 中定义它:

class Migration(migrations.Migration):
    dependencies = [
        ('modulename', '0002_second'),
    ]

【讨论】:

    猜你喜欢
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    • 2019-10-02
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多