Django 迁移没有迁移 authtoken 和会话
Django migration didn't migrate authtoken and sessions
当 运行 宁 python manage.py migrate
时,并非所有迁移都是 运行,特别是 django_celery_results
、authtoken
和 sessions
。这导致与应用程序相关的迁移出错。
但是,如果我首先手动迁移这三个,然后专门迁移 auth
(不确定为什么我需要再次迁移)然后执行 python manage.py migrate
,它会起作用。
Django 上安装的应用是这样的:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'rest_framework.authtoken',
'django_celery_results',
'celery.contrib.testing.tasks',
'api_app'
]
我想知道为什么会这样,我认为 migrate
会 运行 "operations to perform" 中列出的所有迁移。
您的 api_app.0002
迁移创建了一个未设置 last_login
的用户。因此,此迁移必须 运行 在允许此列中的空值的 auth 0005 迁移之后。
如果您将 dependency 添加到您的迁移中,那么 Django 将 运行 它们以正确的顺序排列。
class Migration(migrations.Migration):
dependencies = [('auth', '0005_alter_user_last_login_null')]
当 运行 宁 python manage.py migrate
时,并非所有迁移都是 运行,特别是 django_celery_results
、authtoken
和 sessions
。这导致与应用程序相关的迁移出错。
但是,如果我首先手动迁移这三个,然后专门迁移 auth
(不确定为什么我需要再次迁移)然后执行 python manage.py migrate
,它会起作用。
Django 上安装的应用是这样的:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'rest_framework.authtoken',
'django_celery_results',
'celery.contrib.testing.tasks',
'api_app'
]
我想知道为什么会这样,我认为 migrate
会 运行 "operations to perform" 中列出的所有迁移。
您的 api_app.0002
迁移创建了一个未设置 last_login
的用户。因此,此迁移必须 运行 在允许此列中的空值的 auth 0005 迁移之后。
如果您将 dependency 添加到您的迁移中,那么 Django 将 运行 它们以正确的顺序排列。
class Migration(migrations.Migration):
dependencies = [('auth', '0005_alter_user_last_login_null')]