【问题标题】:After deleting my database and trying to apply a new migrations i get this errors that say django.db.migrations.exceptions.NodeNotFoundError删除我的数据库并尝试应用新的迁移后,我得到这个错误,说 django.db.migrations.exceptions.NodeNotFoundError
【发布时间】:2021-01-08 17:57:03
【问题描述】:

我正在尝试将迁移应用到新数据库,但我不断收到此错误,我已删除旧数据库中的所有迁移文件以及应用程序中的文件。当我尝试将迁移应用到新数据库或运行 python manage.py runserver 时,我收到此错误..?我想知道可能是什么问题。我正在使用 Django 3.1.1

E:\All django project\Real-Estate-Django-Web-App-master>manage.py migrate
Traceback (most recent call last):
  File "E:\All django project\Real-Estate-Django-Web-App-master\manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Python38\lib\site-packages\django\core\management\__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "C:\Python38\lib\site-packages\django\core\management\__init__.py", line 395, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Python38\lib\site-packages\django\core\management\base.py", line 330, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\Python38\lib\site-packages\django\core\management\base.py", line 371, in execute
    output = self.handle(*args, **options)
  File "C:\Python38\lib\site-packages\django\core\management\base.py", line 85, in wrapped
    res = handle_func(*args, **kwargs)
  File "C:\Python38\lib\site-packages\django\core\management\commands\migrate.py", line 92, in handle
    executor = MigrationExecutor(connection, self.migration_progress_callback)
  File "C:\Python38\lib\site-packages\django\db\migrations\executor.py", line 18, in __init__
    self.loader = MigrationLoader(self.connection)
  File "C:\Python38\lib\site-packages\django\db\migrations\loader.py", line 53, in __init__
    self.build_graph()
  File "C:\Python38\lib\site-packages\django\db\migrations\loader.py", line 255, in build_graph
    self.graph.validate_consistency()
  File "C:\Python38\lib\site-packages\django\db\migrations\graph.py", line 195, in validate_consistency
    [n.raise_error() for n in self.node_map.values() if isinstance(n, DummyNode)]
  File "C:\Python38\lib\site-packages\django\db\migrations\graph.py", line 195, in <listcomp>
    [n.raise_error() for n in self.node_map.values() if isinstance(n, DummyNode)]
  File "C:\Python38\lib\site-packages\django\db\migrations\graph.py", line 58, in raise_error
    raise NodeNotFoundError(self.error_message, self.key, origin=self.origin)
django.db.migrations.exceptions.NodeNotFoundError: Migration auth.0013_user_following dependencies reference nonexistent parent node ('account', '0003_contact')

【问题讨论】:

  • 身份验证应用程序中的迁移文件0013_user_following 引用了一个不存在的0003_contact 迁移。您可能删除了错误的迁移文件。
  • 我已经检查了所有的应用程序文件,并确保所有被删除的迁移,包括 pyc 文件......只是仍然无法找到这个问题。我尝试在 settings.py 中注释掉 auth 应用程序,但随后它引发了 RuntimeError。

标签: python python-3.x django django-models django-rest-framework


【解决方案1】:

好吧!我终于能够通过首先在我的虚拟环境上卸载 Django 然后重做安装来解决这个问题,但问题仍然存在,所以我只是按照我的直觉删除了整个虚拟环境,我安装了 virtualenv 然后安装了 Django,它完美地工作。感谢所有试图提供帮助的人,我非常感谢您的回答。

【讨论】:

    【解决方案2】:

    auth.0013_user_following 迁移需要缺少的 0003_contact 迁移。

    尝试从所有应用中删除所有迁移并设置一个新数据库。

    【讨论】:

    • 我有,但我仍然遇到同样的错误...项目中我的应用程序中的所有迁移文件已被删除。
    • 删除数据库并创建一个新的。这是一篇如何重置数据库的文章:simpleisbetterthancomplex.com/tutorial/2016/07/26/…
    • 我就是这么做的。但还是一样。
    【解决方案3】:

    根据 Abubakari UmarblacKrussain Uma 提供的解决方案,我注意到链接到我的虚拟环境文件的包丢失/损坏。当我对照我的 requirements.text 文件检查它时,我注意到 Django 包已替换为 django 2.2.27(django 小写),并添加了一个条目 -jango 3.1.3。我手动编辑 requirements.txt 文件以删除 -jango 3.1.3 条目并将 django 2.2.27 替换为 Django 3.1.3 并从 requirements.txt 重新加载虚拟环境强>。这解决了错误。为了更好地衡量,我为虚拟环境重新生成了 requirements.txt 文件。

    【讨论】:

      猜你喜欢
      • 2019-03-21
      • 2020-05-13
      • 1970-01-01
      • 1970-01-01
      • 2020-05-20
      • 2020-01-07
      • 2021-07-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多