0

在使用 Postgres 的 Django 1.8 中,如何更改迁移顺序?我有以下......

AUTH_USER_MODEL = 'users.User'
INSTALLED_APPS = [
    "test.apps.users",
    'django_nose',
    'django_coverage',
    'oauth2_provider',
    'rest_framework',
    'django_extensions',
]

无论我的应用程序的顺序如何,oauth2_provider都会给我错误...

django.db.utils.ProgrammingError:关系“users_user”不存在

Operations to perform:
  Synchronize unmigrated apps: oauth2_provider, staticfiles, messages, django_extensions, django_coverage, django_nose, rest_framework, common
  Apply all migrations: users, sessions, admin, auth, contenttypes
Synchronizing apps without migrations:
  Creating tables...
    Creating table oauth2_provider_application
    Creating table oauth2_provider_grant
    Creating table oauth2_provider_accesstoken
    Creating table oauth2_provider_refreshtoken
    Running deferred SQL...

因为它在创建 apps.users 表之前应用了自己的迁移。

如果我删除了oauth2_provider,应用迁移,然后重新添加,oauth2_provider然后再次应用迁移,它可以工作!但是,必须有一种方法可以强制test.apps.users在之前创建迁移oauth2_provider或其他任何东西。

我注意到的是,oauth2_provider它们里面有:

migrations.swappable_dependency(settings.AUTH_USER_MODEL) https://github.com/evonove/django-oauth-toolkit/blob/master/oauth2_provider/migrations/0001_initial.py#L14

但是,当我运行测试并需要创建新的测试数据库时,Django 只是忽略了这一点,并尝试oauth2_provider在我的用户模型给出上述错误之前应用迁移。

4

1 回答 1

1

你安装了哪个版本的 django-oauth-toolkit?如果您从 PyPI 安装,请尝试从 GitHub 上的主分支安装。PyPI (v0.8) 上的当前版本仅支持 South 迁移,但不支持 Django 1.7 中引入的内置迁移。

于 2015-04-27T19:40:18.467 回答