Почему django 1.7 создает миграции для изменений в выборе полей?

Я наблюдал это поведение в версии 1.7, но не в предыдущих версиях, используя южную миграцию.

например.

class RedemptionCode(models.Model):
    EXPIRE_OPTIONS = (
        ('1 week', '1 Week'),
    )

    expire_option = models.CharField(max_length=255, choices=EXPIRE_OPTIONS)

когда я добавил дополнительные параметры:

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

и запустите makemigrations, он создает для него перенос, исходящий из фона south. Я думал, что он должен сказать, что никаких изменений не обнаружено, так как оно не влияет на схему базы данных. Я не знаю, для чего он служит:

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')]),
        ),
    ]

Ответы

Ответ 1

После поднятия билета и закрытия из-за дублирования, наконец, нашел ответ:

Это по дизайну. Есть несколько причин, не в последнюю очередь для меня, что для данных в исторических точках необходимо иметь полное точное представление моделей, включая все их параметры, а не только те, которые влияют на базу данных.

Ссылка: