Почему 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
После поднятия билета и закрытия из-за дублирования, наконец, нашел ответ:
Это по дизайну. Есть несколько причин, не в последнюю очередь для меня, что для данных в исторических точках необходимо иметь полное точное представление моделей, включая все их параметры, а не только те, которые влияют на базу данных.
Ссылка: