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

vybvopom  于 2021-09-29  发布在  Java
关注(0)|答案(14)|浏览(268)

当我运行以下命令时

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')"

我如何解决这个问题?

ljsrvy3e

ljsrvy3e1#

解决方案-1
去除 pyc 迁移文件夹中的文件。
解决方案-2
需要从中删除该引用吗 testBolt.0001_initial 通过编辑迁移文件。
解决方案-3
从模型中删除新更改并运行 python manage.py migrate --fake 现在再次用新的更改修改您的模型
python manage.py makemigrations 然后再跑 python manage.py migrate

wkyowqbh

wkyowqbh2#

我也有同样的问题。在我的例子中,因为我手动执行迁移,所以忘记创建 __init__.py 里面 migrations 文件夹。

pinkon5k

pinkon5k3#

就我而言,我有 .py 依赖项模块名称中的扩展,如下所示:

dependencies = [
    ('dashboard', '0003_auto_20181024_0603.py'),
    ('auth', '__latest__'),
    ('contenttypes', '__latest__'),
]

我取下了钥匙 .py ,改成这个

('dashboard', '0003_auto_20181024_0603')

这就解决了问题。

ddarikpa

ddarikpa4#

这在你的应用程序迁移文件夹中对我有效
删除应用程序文件夹中的所有pyc文件(除 __init__ )
删除迁移中的所有文件(除 __init__ ) python manage.py makemigrations python manage.py migrate runserver

sauutmhj

sauutmhj5#

我也遇到过类似的情况,在虚拟环境中在windows中运行django。在我的例子中,缺少的依赖项是0001_initial,它肯定在迁移文件夹中。
“解决方案”是删除pyc文件并进行另一次迁移尝试。

tvmytwxo

tvmytwxo6#

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

去除
测试螺栓0.0001_首字母
然后再次运行迁移

nx7onnlm

nx7onnlm7#

确保已激活虚拟环境。

bkhjykvo

bkhjykvo8#

这对我很有用:
删除环境。
创建具有所有依赖项的新环境

2ekbmq32

2ekbmq329#

我已经移动了虚拟环境文件夹,所以我把它移回原处,为我工作。

ulydmbyx

ulydmbyx10#

以下是它对我的作用:
删除所有 __pycache__ 每个应用程序中的文件夹。
已删除迁移文件夹中的所有文件,但 __init.py__ 在每个应用程序文件夹中。 python manage.py makemigrations python manage.py migrate python manage.py runserver

xxls0lw8

xxls0lw811#

我尝试了nikhil的解决方案,但没有成功。对我来说,成功的是:
删除我的虚拟环境
删除迁移 __pycache__ 文件夹
删除旧迁移
重新创建我的虚拟环境
运行迁移

axr492tv

axr492tv12#

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

pip3 uninstall Django

pip3 install Django

然后迁移

9bfwbjaz

9bfwbjaz13#

当您尝试migrate命令时,应用程序中可能还有一些迁移文件。首先删除所有 migrations 所有模块的目录。对于其他案例,nikhil rane已经涵盖了所有内容。

o75abkj4

o75abkj414#

转到文件夹testbolt->migrations并删除0001_初始py和pyc文件。

相关问题