Django 1.8:迁移打破了AbstractBaseUser

Django 1.8: migrations break with AbstractBaseUser

我有一个正在工作的Django1.6项目,而不是升级到1.8。我在app mainapp中有一个自定义用户模型,如下所示:

1
2
class CustomUser(AbstractBaseUser, PermissionsMixin):
    ...

manage.py migratesyncdb失败,错误如下:

1
2
3
4
5
6
7
8
9
10
11
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.8rc1中的答案:在创建数据库表时编程错误,并为应用程序(以及所有其他可以迁移的应用程序,包括auth)运行makemigrations。未检测到其中任何一个更改,此后,migrate继续失败。我该如何更正?

黑客解决方案:我可以通过评论我在INSTALLED_APPS中的所有应用程序来运行这个项目,然后按特定顺序添加这些应用程序,并在继续运行时运行migrate。世界跆拳道联盟。。。必须有一个适当的方法来做到这一点。

  • 您可能需要编辑您的mainapp初始迁移以添加对auth的依赖。
  • @丹尼尔罗斯曼怎么了?我刚开始移民。
  • 查看文档-只需在迁移到参考('auth', '0001_initial')中编辑dependencies列表。
  • @丹尼尔罗斯曼已经在那里了:埃多克斯1〔2〕。


结果是我使用的第三方应用程序之一需要升级。不是你能从错误中分辨出来的。

  • 它是哪个第三方应用程序?
  • @马尔利维:如果我没记错的话,那就是姜戈卫报。
  • 注意。。。似乎另一个perms/auth相关的应用程序在这里遇到了问题。您的测试现在运行吗?