Django公司Django.db.迁移.图形循环依赖

2024-09-22 14:38:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我在迁移应用程序时遇到循环错误。 运行时:

(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

Tags: djangoinpycoreselfhomeexecutelib
1条回答
网友
1楼 · 发布于 2024-09-22 14:38:46

我可能建议您尝试使用带有“through”选项的manytomy字段。在

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

  1. 在使用manytomy+的整行中,通过在行首加上#来注释整行
  2. 迁移所有你需要的应用程序(也包括p1的线路所在的应用程序)
  3. 取消注释p1中的行
  4. 从p1_行存在的地方迁移应用程序
  5. 迁移

相关问题 更多 >