【问题标题】:Django django.db.migrations.graph.CircularDependencyErrorDjango django.db.migrations.graph.CircularDependencyError
【发布时间】:2015-05-14 05:58:55
【问题描述】:

我在迁移我的应用时遇到循环错误。 当我运行这个时:

(virEnv)abc@abc-All-Series:~/vissa_poc$ python manage.py migrate forms
**I get this:**

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/abc/virEnv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/home/abc/virEnv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 377, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/abc/virEnv/local/lib/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/home/abc/virEnv/local/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute
    output = self.handle(*args, **options)
  File "/home/abc/virEnv/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 106, in handle
    plan = executor.migration_plan(targets)
  File "/home/abc/virEnv/local/lib/python2.7/site-packages/django/db/migrations/executor.py", line 54, in migration_plan
    for migration in self.loader.graph.forwards_plan(target):
  File "/home/abc/virEnv/local/lib/python2.7/site-packages/django/db/migrations/graph.py", line 60, in forwards_plan
    return self.dfs(node, lambda x: self.dependencies.get(x, set()))
  File "/home/abc/virEnv/local/lib/python2.7/site-packages/django/db/migrations/graph.py", line 124, in dfs
    self.ensure_not_cyclic(start, get_children)
  File "/home/abc/virEnv/local/lib/python2.7/site-packages/django/db/migrations/graph.py", line 112, in ensure_not_cyclic
    raise CircularDependencyError(", ".join("%s.%s" % n for n in cycle))
django.db.migrations.graph.CircularDependencyError: vissa.0001_initial, forms.0001_initial

【问题讨论】:

标签: python django python-2.7 django-models


【解决方案1】:

我可能会建议您尝试使用带有“通过”选项的 ManyToMany 字段。

要修复它,您需要执行以下操作:

  1. 在整行使用 ManyToMany+through 时,将 # 放在行首来注释
  2. makemigrations of_all_apps_you_need(也是 p1 行存在的那个)
  3. 从 p1 取消注释该行
  4. makemigrations the_app_where_the_line_from_p1_exist
  5. 迁移

【讨论】:

  • @andi,我只知道这个变体 :) 哦,不......还有一个 - 手动编写迁移,但我不喜欢这种方式,因为它需要一些时间,你必须小心
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-12
  • 2012-01-15
  • 2015-08-07
  • 2014-08-30
  • 1970-01-01
  • 1970-01-01
  • 2012-06-20
相关资源
最近更新 更多