Django 迁移没有迁移 authtoken 和会话

Django migration didn't migrate authtoken and sessions

当 运行 宁 python manage.py migrate 时,并非所有迁移都是 运行,特别是 django_celery_resultsauthtokensessions。这导致与应用程序相关的迁移出错。

但是,如果我首先手动迁移这三个,然后专门迁移 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')]