每次migrate
之后,每次尝试makemigrations
进行初始迁移时,我都会收到类似以下错误:
django.db.migrations.exceptions.InvalidBasesError: Cannot resolve bases for [<ModelState: 'Project.Class'>]
This can happen if you are inheriting models from an app with migrations (e.g. contrib.auth)
我认为发生这种情况的原因是因为operations
迁移中的模型0001_initial.py
的顺序不正确。具有从他人继承的类的操作将添加到其父母的操作之前。重新排序操作后,它可以工作:Process finished with exit code 0
。凉!但是如何使makemigrations
工作而不每次都这样做?
谢谢!
ps。我尝试在模型的__init__.py
中重新排序模型的导入顺序,但是没有用。
答案 0 :(得分:2)
如果您的 Django项目 和中的一个应用程序模型中有 个应用程序 引用了另一个应用程序-可能会导致此类冲突。
建议 分别为每个应用创建迁移 ,并在引用迁移文件时引用另一个应用迁移作为依赖项。
python manage.py makemigrations app-one
python manage.py makemigrations app-two
# example of referencing dependent migration,
# so app-two 0001 migrations runs after app-one 0001 migration
# app-two/migrations/0001-initial.py
dependencies = [("app-one", "0001-init.py")]