Django 1.8 以及如何更改应用程序的迁移顺序
Django 1.8 and how to change migration order for apps
在使用 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: relation "users_user" does not exist
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 table 之前应用了自己的迁移。
如果我删除了 oauth2_provider
,应用迁移,然后重新添加 oauth2_provider
然后再次应用迁移,就可以了!但是,必须有一种方法可以强制在 oauth2_provider
或其他任何事情之前创建 test.apps.users
迁移。
我注意到 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
应用迁移,每当我 运行 测试并需要创建一个新的测试数据库时。
你安装的是哪个版本的django-oauth-toolkit?如果您是从 PyPI 安装的,请尝试从 GitHub 上的 master 分支安装。 PyPI (v0.8) 上的当前版本仅支持南向迁移,但不支持 Django 1.7 中引入的内置迁移。
在使用 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: relation "users_user" does not exist
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 table 之前应用了自己的迁移。
如果我删除了 oauth2_provider
,应用迁移,然后重新添加 oauth2_provider
然后再次应用迁移,就可以了!但是,必须有一种方法可以强制在 oauth2_provider
或其他任何事情之前创建 test.apps.users
迁移。
我注意到 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
应用迁移,每当我 运行 测试并需要创建一个新的测试数据库时。
你安装的是哪个版本的django-oauth-toolkit?如果您是从 PyPI 安装的,请尝试从 GitHub 上的 master 分支安装。 PyPI (v0.8) 上的当前版本仅支持南向迁移,但不支持 Django 1.7 中引入的内置迁移。