我有一个正在运行的 Django 1.6 项目,我正在将其升级到 1.8。我在应用 mainapp
中有一个自定义用户模型,如下所示:
class CustomUser(AbstractBaseUser, PermissionsMixin):
...
manage.py migrate
或 syncdb
失败并出现以下错误:
Operations to perform:
Synchronize unmigrated apps: gis, gunicorn, staticfiles, guardian, messages, captcha, corsheaders, bootstrapform
Apply all migrations: sessions, admin, sites, auth, contenttypes, mainapp
Synchronizing apps without migrations:
Creating tables...
Creating table guardian_userobjectpermission
Creating table guardian_groupobjectpermission
Creating table corsheaders_corsmodel
Running deferred SQL...
...
django.db.utils.ProgrammingError: relation "auth_permission" does not exist
我按照Django 1.8 RC1: ProgrammingError when creating database tables中的答案进行操作并为应用程序(以及所有其他可以迁移的应用程序,包括 auth)运行 makemigrations。没有检测到任何更改,并且此后 migrate
继续失败。我该如何纠正这个问题?
巧妙的解决方法:
我可以通过注释掉 INSTALLED_APPS
中的所有应用程序来运行项目,然后按特定顺序添加它们并运行 migrate
。 WTF...必须有一个正确的方法来做到这一点。
最佳答案
事实证明,这是我正在使用的需要升级的第三方应用程序之一。您无法从错误中看出。
关于 Django 1.8 : migrations break with AbstractBaseUser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29986295/