Django迁移-依赖关系引用不存在的父节点

时间:2018-11-07 15:08:36

标签: python django windows django-models django-migrations

与正常迁移不同,这是不同的迁移。我已经删除了整个项目和数据库。使用了没有任何应用程序的基本Django项目。该错误始终指向我的较早迁移。为了确保使用默认的SQL lite。

导致此错误的步骤:我尝试在使用add_to_class和contribution_to_class方法的组模型中添加列,但我没有迁移。

Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x000001E7701610D0>
  Traceback (most recent call last):
    File "E:\Python_365\lib\site-packages\django\utils\autoreload.py", line 225, in wrapper
      fn(*args, **kwargs)
    File "E:\Python_365\lib\site-packages\django\core\management\commands\runserver.py", line 123, in inner_run
      self.check_migrations()
    File "E:\Python_365\lib\site-packages\django\core\management\base.py", line 427, in check_migrations
      executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
    File "E:\Python_365\lib\site-packages\django\db\migrations\executor.py", line 18, in __init__
      self.loader = MigrationLoader(self.connection)
    File "E:\Python_365\lib\site-packages\django\db\migrations\loader.py", line 49, in __init__
      self.build_graph()
    File "E:\Python_365\lib\site-packages\django\db\migrations\loader.py", line 267, in build_graph
      raise exc
    File "E:\Python_365\lib\site-packages\django\db\migrations\loader.py", line 241, in build_graph
      self.graph.validate_consistency()
    File "E:\Python_365\lib\site-packages\django\db\migrations\graph.py", line 243, in validate_consistency
      [n.raise_error() for n in self.node_map.values() if isinstance(n, DummyNode)]
    File "E:\Python_365\lib\site-packages\django\db\migrations\graph.py", line 243, in <listcomp>
      [n.raise_error() for n in self.node_map.values() if isinstance(n, DummyNode)]
    File "E:\Python_365\lib\site-packages\django\db\migrations\graph.py", line 96, in raise_error
      raise NodeNotFoundError(self.error_message, self.key, origin=self.origin)
  django.db.migrations.exceptions.NodeNotFoundError: Migration auth.0022_group_openid dependencies reference nonexistent parent node ('Task', '0003_auto_20181107_1811')

我不确定为什么Django仍然提到我迁移的其他项目。这也不能让我也迁移其他项目,到处都出现相同的错误。

1 个答案:

答案 0 :(得分:1)

听起来0022_group_openid迁移文件在django安装中,而不是在您的项目中,并且您对多个项目使用相同的安装。您可以手动删除额外的迁移文件。最好对每个项目使用不同的virtualenv并在其中安装Django。

您可能需要查看MIGRATION_MODULES设置。它将允许您将django.contrib.auth的迁移放入您的项目中,以便可以将它们保持在版本控制之下。

最后,将字段添加到Group模型是不寻常的,因此您可能会遇到奇怪的行为。如果可能,我会尽量避免这样做。也许您可以向Group添加带有外键或一对一字段的单独模型。