migraciones eliminar django migration django-migrations

eliminar - ¿Por qué django 1.7 crea migraciones para cambios en las opciones de campo?



eliminar migraciones django (1)

Luego de levantar el boleto y cerrarse debido a la duplicación, finalmente se encontró la respuesta:

Esto es por diseño. Hay varias razones, entre las cuales, para mí, las migraciones de datos en puntos de la historia necesitan tener una representación completa y precisa de los modelos, incluidas todas sus opciones, no solo las que afectan a la base de datos.

Referencia:

He observado este comportamiento en la versión 1.7, pero no en versiones anteriores que utilizan la migración al sur.

p.ej.

class RedemptionCode(models.Model): EXPIRE_OPTIONS = ( (''1 week'', ''1 Week''), ) expire_option = models.CharField(max_length=255, choices=EXPIRE_OPTIONS)

Cuando agregué más opciones:

EXPIRE_OPTIONS = ( (''1 week'', ''1 Week''), (''2 weeks'', ''2 Weeks''), (''1 month'', ''1 Month''), (''1 day'', ''1 Day''), )

y ejecutar makemigrations , crea una migración para él. Desde el fondo south , pensé que debería decir que no se detectaron cambios porque no afecta el esquema de la base de datos. No sé para qué sirve:

class Migration(migrations.Migration): dependencies = [ (''credits'', ''0001_initial''), ] operations = [ migrations.AlterField( model_name=''redemptioncode'', name=''expire_option'', field=models.CharField(max_length=255, choices=[(''1 week'', ''1 Week''), (''2 weeks'', ''2 Weeks''), (''1 month'', ''1 Month''), (''1 day'', ''1 Day'')]), ), ]