Atualizar do Django 1.6 (com sul) para 1.8 não modifica 'last_login' na tabela de usuários
Eu atualizei do Django 1.6.5 (com migrações para o sul) para o Django 1.8. Eu segui as instruções aqui:https://docs.djangoproject.com/en/1.8/topics/migrations/#upgrading-from-south
Então, removo o sul, excluo minhas migrações anteriores e corropython manage.py makemigrations
o que cria um novo arquivo de migração. Então eu corropython manage.py migrate --fake-initial
falsificar a migração inicial. Então eu corropython manage.py migrate
.
Tudo funciona bem, sem erros.
Eu tenho um modelo de usuário personalizado que herdaAbstractBaseUser
. No Django 1.8, parece que há uma alteração nolast_login
campo em que agora é capaz de aceitar umnull
valor (https://docs.djangoproject.com/fr/1.8/ref/contrib/auth/#django.contrib.auth.models.User.last_login)
O problema que tenho é que a migração não altera olast_login
campo na tabela do banco de dados para aceitar valores nulos. Como resultado, quando tento salvar, recebo umaIntegrityError
dizendo(1048, "Column 'last_login' cannot be null")
.
Como posso consertar isso? Preciso alterar manualmente o campo no banco de dados ou existe uma maneira de corrigi-lo com migrações?
Editar Quando eu corropython manage.py migrate --fake-initial
a saída é esta: Executando migrações:
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
No entanto, quando olho no banco de dados, ainda vejouser_last_login
como não nulo.