python - Django 迁移没有迁移 authtoken 和会话
问题描述
运行时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
会运行“要执行的操作”中列出的所有迁移。
解决方案
您的api_app.0002
迁移无需设置即可创建用户last_login
。因此,此迁移必须在允许此列中有空值的 auth 0005 迁移之后运行。
如果您向迁移添加依赖项,那么 Django 将以正确的顺序运行它们。
class Migration(migrations.Migration):
dependencies = [('auth', '0005_alter_user_last_login_null')]
推荐阅读
- node.js - 有什么方法可以帮助我在 mongodb 集合中自动创建文档?
- angular - Angular Material 表单控件以红色突出显示,即使是原始的
- android - 如何打开“google-services.json”文件夹?
- php - 如何计算由 . 在一个大字符串中?
- android - 最新的 Flutter 升级后 utf8.decoder 不工作
- python - 为什么我的参考线 (HLine) 没有出现在 Holoviews 图中?
- css - CSS - 图像拒绝在中间垂直对齐
- c++ - 如何用 std::variant 正确替换 boost::variant?
- python - Python - 从最高列值中获取一个组
- python - python中的“EOFError”是什么以及如何解决?