Необходима ли новая миграция Django при добавлении нового члена в существующий класс Enum?

#django #enums #django-migrations

#django #перечисления #django-миграции

Вопрос:

Допустим, у меня есть модель Pie , и я добавляю поле flavor , которое является EnumTextField .

 class FlavorType(Enum):
    APPLE = 'apple'
    BANANA = 'banana'
 

Django автоматически генерирует миграцию:

     operations = [
        migrations.AddField(
            model_name='pie',
            name='flavor',
            field=django_apps.core.fields.EnumTextField(
                choices=[(django_apps.bakery.constants.FlavorType('apple'), 'apple'), 
                         (django_apps.bakery.constants.FlavorType('banana'), 'banana')],
                enum_cls=django_apps.bakery.constants.FlavorType
            ),
        ),
    ]
 

Допустим, позже я добавлю новый элемент, например FlavorType.CHERRY :

 class FlavorType(Enum):
    APPLE = 'apple'
    BANANA = 'banana'
    CHERRY = 'cherry'
 

Вопрос: AlterField Нужно ли выполнять новую миграцию для обновления field.choices ?

Я предполагаю, что нет, потому что мы уже указали enum_cls . Я заметил, что makemigrations при добавлении этого элемента enum не создается новый файл миграции. Кроме того, я могу без проблем сохранить новый набор вкусов cherry в базе данных. Если это так, то 1) Я нахожу это немного вводящим в заблуждение, что choices даже в исходной миграции и 2) Я не смог найти никакой документации по этому поводу. Любая информация приветствуется!