La actualización de Django 1.6 (con sur) a 1.8 no modifica 'last_login' en la tabla de usuario
He actualizado de Django 1.6.5 (con migraciones al sur) a Django 1.8. He seguido las instrucciones aquí:https://docs.djangoproject.com/en/1.8/topics/migrations/#upgrading-from-south
Entonces, elimino South, elimino mis migraciones anteriores y ejecutopython manage.py makemigrations
que crea un nuevo archivo de migración. Entonces corropython manage.py migrate --fake-initial
para fingir la migración inicial. Entonces corropython manage.py migrate
.
Todo funciona bien sin errores.
Tengo un modelo de usuario personalizado que heredaAbstractBaseUser
. En Django 1.8 parece que hay un cambio en ellast_login
campo donde ahora puede aceptar unnull
valor (https://docs.djangoproject.com/fr/1.8/ref/contrib/auth/#django.contrib.auth.models.User.last_login)
El problema que tengo es que la migración no cambia ellast_login
campo en la tabla de la base de datos para aceptar valores nulos. Como resultado, cuando trato de guardar me sale unIntegrityError
diciendo(1048, "Column 'last_login' cannot be null")
.
¿Cómo puedo arreglar esto? ¿Necesito cambiar manualmente el campo en la base de datos, o hay alguna forma de arreglarlo con migraciones?
Editar Cuando corropython manage.py migrate --fake-initial
el resultado es este: Ejecución de migraciones:
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
Sin embargo, cuando miro en la base de datos todavía veouser_last_login
como no nulo