startapp sqlmigrate migrations manage createsuperuser django django-south

sqlmigrate - ¿Por qué Django South requiere un valor predeterminado al eliminar un campo?



python manage.py startapp (1)

Cuando estoy eliminando un campo NOT NULL usando Django South, recibo el siguiente mensaje:

? The field ''VisitOrder.end_date'' does not have a default specified, yet is NOT NULL. ? Since you are removing this field, you MUST specify a default ? value to use for existing rows. Would you like to: ? 1. Quit now, and add a default to the field in models.py ? 2. Specify a one-off value to use for existing columns now ? 3. Disable the backwards migration by raising an exception. ? Please select a choice:

¿Por qué South necesita esto, dado que de todos modos va a eliminar el campo?


Django South le permite avanzar o retroceder a través de las migraciones. Por lo tanto, si alguna vez decide deshacer una migración, South volverá a crear los campos que se eliminaron. Es por eso que South le pregunta si desea especificar un valor predeterminado o "deshabilitar la migración hacia atrás al generar una excepción".