Жестко закодированные вещи в миграциях
Могли бы вы рассказать мне, почему Django жестко кодирует бизнес-логику в миграции?
Мы можем сформулировать вопрос по-другому. Давайте посмотрим на valitadors и upload_to. Все это жестко закодировано в миграциях.
Но если мы покажем SQL, который производит миграция, то никаких валидаторов или upload_to там не будет.
Итак, почему они жестко закодированы? Валидаторы и upload_to уже упомянуты в моделях. Нарушается принцип DRY.
Любое изменение в коде разрушает миграции. Например, переименование upload_to приведет к взрыву проекта.
Валидаторы и upload_to - это только примеры. Есть и другие подобные вещи. В любом случае, они не влияют на базу данных. Так зачем же они нужны в миграциях?
Вы можете прокомментировать?