【问题标题】:KeyError: u"Migration rango.0002_auto_20150905_0345 dependencies reference nonexistent parent nodeKeyError: u"Migration rango.0002_auto_20150905_0345 依赖项引用不存在的父节点
【发布时间】:2015-12-01 06:44:06
【问题描述】:

我是 django 的新手,开始搞砸一些事情,看看会发生什么。问题是我现在有点搞砸了,希望能得到帮助。

我手动删除了一些迁移,然后运行

manage.py squashmigrations app migration_name

并更改了一些迁移,然后再次运行该命令。 问题是我现在正面临这个小错误。上次迁移引用另一个作为父级,但它现在不存在。

(kali)maker@localhost:~/Poker/tango_with_django_project$ sudo python manage.py migrate       
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 377, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
 File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 288, in run_from_argv
self.execute(*args, **options.__dict__)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 338, in execute
output = self.handle(*args, **options)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/migrate.py", line 63, in handle
executor = MigrationExecutor(connection, self.migration_progress_callback)
  File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/executor.py", line 17, in __init__
self.loader = MigrationLoader(self.connection)
  File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/loader.py", line 48, in __init__
self.build_graph()
  File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/loader.py", line 237, in build_graph
self.graph.add_dependency(migration, key, parent)
  File "/usr/local/lib/python2.7/dist-packages/django/db/migrations/graph.py", line 46, in add_dependency
"Migration %s dependencies reference nonexistent parent node %r" % (migration, parent)
KeyError: u"Migration rango.0002_auto_20150905_0345 dependencies reference nonexistent parent node (u'rango', u'0001_squashed_0004_auto_20150904_2325')"

【问题讨论】:

  • 您是否删除了迁移文件?
  • @Gocht 我做到了,我现在该如何解决?
  • @Gocht 我正在使用 Django 1.7,似乎找不到架构迁移,还有什么我可以做的吗?
  • 再次使用 --fake 和 makemigrations

标签: python mysql django


【解决方案1】:

就我而言,

  1. 删除数据库(请备份/导出数据)
  2. 删除 migrate 文件夹中的 *.pyc 文件
  3. 删除 migrate 文件夹中的迁移文件,除了 init.py
  4. 创建具有相同名称的新数据库
  5. 为用户 db 授予权限
  6. 迁移
  7. 迁移
  8. 创建超级用户
  9. 运行服务器

最后,它起作用了。

【讨论】:

    猜你喜欢
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    • 2017-10-26
    • 2021-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多