修复在Django1.9中检测到的冲突迁移 [英] Fix Conflicting migrations detected in Django1.9

查看:856
本文介绍了修复在Django1.9中检测到的冲突迁移的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I updated django-dynamic-model repository to support Django 1.9. I got this error:

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 ,出现另一个错误:

After running python manage.py makemigrations --merge, I got another error:

 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']). 

帮我找到解决方案。

推荐答案

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

The migrations need to have "straight" dependency chain, i.e. migration 0003 needs to depend on migration 0002, and 0002 on 0001.

您需要在0003_third.py中定义如下:

You need to define this in the 0003_third.py like this:

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

这篇关于修复在Django1.9中检测到的冲突迁移的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆