gpt4 book ai didi

python - 从 Django 1.6 (with south) 升级到 1.8 不会修改用户表上的 'last_login'

转载 作者:IT老高 更新时间:2023-10-28 22:22:38 27 4
gpt4 key购买 nike

我已从 Django 1.6.5(带有南迁移)升级到 Django 1.8。我已按照此处的说明进行操作: https://docs.djangoproject.com/en/1.8/topics/migrations/#upgrading-from-south

所以,我删除了 South,删除了我以前的迁移并运行 python manage.py makemigrations 这会生成一个新的迁移文件。然后我运行 python manage.py migrate --fake-initial 来伪造初始迁移。然后我运行 python manage.py migrate

一切正常,没有错误。

我有一个继承 AbstractBaseUser 的自定义用户模型。在 Django 1.8 中,似乎对 last_login 字段进行了更改,现在它可以接受 null 值(https://docs.djangoproject.com/fr/1.8/ref/contrib/auth/#django.contrib.auth.models.User.last_login)。

我遇到的问题是,迁移不会更改数据库表中的 last_login 字段以接受空值。结果,当我尝试保存时,我得到一个 IntegrityError(1048, "Column 'last_login' cannot be null")

我该如何解决这个问题?我需要手动更改数据库中的字段,还是有办法通过迁移来修复它?

编辑当我运行 python manage.py migrate --fake-initial 时,输出是这样的:运行迁移:

  Rendering model states... DONE
Applying contenttypes.0001_initial... FAKED
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0001_initial... FAKED
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying core.0001_initial... FAKED
Applying admin.0001_initial... FAKED
Applying sessions.0001_initial... FAKED

但是,当我查看数据库时,我仍然看到 user_last_login 为非空。

最佳答案

1.8 release notes 中所述:

If you are using a custom user model that inherits from AbstractUser, you’ll need to run makemigrations and generate a migration for your app that contains that model.

关于python - 从 Django 1.6 (with south) 升级到 1.8 不会修改用户表上的 'last_login',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29913612/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com