Django:依赖项引用不存在的父节点

时间:2015-02-23 06:55:56

标签: python django migrate

当我运行以下命令时

python manage.py migrate

我从django收到此错误,所以无法在我的练习中前进:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/home/nikhil/testWeb-devEnv/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/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute
    output = self.handle(*args, **options)
  File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 63, in handle
    executor = MigrationExecutor(connection, self.migration_progress_callback)
  File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/django/db/migrations/executor.py", line 17, in __init__
    self.loader = MigrationLoader(self.connection)
  File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/django/db/migrations/loader.py", line 48, in __init__
    self.build_graph()
  File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/django/db/migrations/loader.py", line 241, in build_graph
    self.graph.add_dependency(migration, key, parent)
  File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/django/db/migrations/graph.py", line 42, in add_dependency
    raise KeyError("Migration %s dependencies reference nonexistent parent node %r" % (migration, parent))
KeyError: u"Migration testBolt.0001_initial dependencies reference nonexistent parent node (u'delivery_boy', u'0004_auto_20150221_2011')"

如何解决这个问题?

14 个答案:

答案 0 :(得分:13)

解决方案 - 1

从迁移文件夹中删除pyc文件。

解决方案 - 2

需要通过编辑迁移文件从testBolt.0001_initial中删除该引用。

解决方案 - 3

  1. 从模态中删除新更改并运行python manage.py migrate --fake

  2. 现在再次使用新更改修改模型

  3. 运行python manage.py makemigrations

  4. 然后再次运行python manage.py migrate

答案 1 :(得分:4)

我有一个类似的案例,在虚拟环境中在Windows中运行django。在我的情况下,缺少的依赖是0001_initial - 这肯定在迁移文件夹中。

'解决方案'是删除pyc文件并进行另一次迁移尝试。

答案 2 :(得分:3)

我遇到了同样的问题。在我的情况下,因为我手动使用迁移,我忘了在__init__.py文件夹中创建migrations

答案 3 :(得分:2)

确保您已激活虚拟环境。

答案 4 :(得分:0)

尝试迁移命令时,应用程序中可能会有一些迁移文件。首先从所有模块中删除所有migrations目录。对于其他情况,Nikhil Rane已经涵盖了所有这些。

答案 5 :(得分:0)

我很幸运地尝试了NIKHIL的解决方案。对我有用的是:

  • 删除我的虚拟环境
  • 删除迁移 static constexpr auto _S_vtable = _S_apply(); ^ ~~~~~~~~~~ 文件夹
  • 删除旧迁移
  • 重新创建我的虚拟环境
  • 正在运行的迁移

答案 6 :(得分:0)

  1. 运行python manage.py migration --fake

  2. 运行python manage.py makemigrations

  3. 然后再次运行python manage.py migration

这个固定的地雷很顺利

答案 7 :(得分:0)

KeyError: u"Migration testBolt.0001_initial dependencies reference nonexistent parent node (u'delivery_boy', u'0004_auto_20150221_2011')"

删除

  

testBolt.0001_initial

然后再次运行迁移

答案 8 :(得分:0)

这对我有用 在您的应用迁移文件夹中

  1. 删除应用文件夹中的所有pyc文件(__init__除外)
  2. 删除迁移中的所有文件(__init__除外)

  3. python manage.py makemigrations

  4. python manage.py migrate
  5. runserver

答案 9 :(得分:0)

我已经在虚拟环境文件夹中移动了,所以我将其移回原位置,为我工作。

答案 10 :(得分:0)

这对我有用:

  • 删除环境。
  • 具有所有依赖关系的全新环境

答案 11 :(得分:0)

这对我有用:

  1. 删除每个应用程序中的所有__pycache__文件夹。
  2. 删除迁移文件夹中的所有文件,但每个应用程序文件夹中的__init.py__除外。
  3. python manage.py makemigrations
  4. python manage.py migrate
  5. python manage.py runserver

答案 12 :(得分:0)

我刚刚卸载了 Django 并重新安装了它:

pip3 uninstall Django

pip3 install Django

然后迁移

答案 13 :(得分:-3)

转到文件夹testBolt - &gt;迁移并删除0001_initial py和pyc文件。