我有一套相对复杂的Django模型。我正在尝试从一组新的迁移开始(rm -rf apps/*/migrations; bin/dev/manage.py makemigrations A B C...
)。 makemigrations
工作正常,没有循环依赖,但我在迁移时一直收到InconsistentMigrationHistory
异常。下面是迁移之间的依赖关系图,简化为删除没有相关依赖关系的迁移,以及为了可读性而编译的应用程序名称:
红色链接导致错误(每次运行migrate
时都会出现错误),即使每次迁移都添加了run_before
,也应该在其依赖之前运行:
A /迁移/ 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'.
有什么想法吗?
答案 0 :(得分:0)
您还需要重置数据库。
在不重置数据库的情况下创建新迁移时,数据库与迁移之间的同步将丢失。
因此,当您尝试迁移新迁移时,Django会发现它不一致并失败。
出于同样的原因,清除所有迁移并生成新的迁移通常不是一个好主意。
想象一下这种情况在生产中发生。