【发布时间】:2023-04-06 22:55:01
【问题描述】:
我有一组相对复杂的 Django 模型。我正在尝试从一组新的迁移开始 (rm -rf apps/*/migrations; bin/dev/manage.py makemigrations A B C...)。 makemigrations 工作正常,并且没有循环依赖关系,但我在迁移时一直收到 InconsistentMigrationHistory 异常。这是迁移之间的依赖关系图,简化以删除没有相关依赖关系的迁移,并且为了可读性而编辑了应用程序名称:
红色的链接会导致错误(每次我运行 migrate 时会出现不同的错误),即使在每个迁移中添加了 run_before,应该在其依赖项之前运行:
A/migrations/0002_whatever.py:
...
run_before = [('P', '0001_initial'),]
这是错误文本。
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration `P.migrations.0001_initial` is applied before its dependency `A.migrations.0002_whatever` on database 'default'.
有什么想法吗?
【问题讨论】:
-
您也尝试重置数据库对吗?
-
嗯。删除数据库并重新创建后,迁移工作。
-
这样想,在不删除数据库的情况下,您删除了迁移。所以当你尝试迁移时,django 会发现你的数据库状态和迁移不一致
-
嗨@ScottDeerwester,您是自己创建了图表还是有任何工具可以生成依赖图?
-
我使用了 dot 语言,它是 graphviz 包的一部分。非常简单。
标签: django django-models