簡體   English   中英

修復在 Django1.9 中檢測到的沖突遷移

[英]Fix Conflicting migrations detected in Django1.9

我更新了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']). 

幫我找到解決辦法。

遷移需要具有“直”依賴鏈,即遷移 0003 需要依賴於遷移 0002,而遷移 0002 需要依賴於 0001。

您需要在 0003_third.py 中像這樣定義它:

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

似乎您注入了其他應用程序的模型。

在您的遷移中定義 TARGET_APP,似乎遷移加載程序無法正確識別目標應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM