Жестко закодированные вещи в миграциях

Могли бы вы рассказать мне, почему Django жестко кодирует бизнес-логику в миграции?

Мы можем сформулировать вопрос по-другому. Давайте посмотрим на valitadors и upload_to. Все это жестко закодировано в миграциях.

Но если мы покажем SQL, который производит миграция, то никаких валидаторов или upload_to там не будет.

Итак, почему они жестко закодированы? Валидаторы и upload_to уже упомянуты в моделях. Нарушается принцип DRY.

Любое изменение в коде разрушает миграции. Например, переименование upload_to приведет к взрыву проекта.

Валидаторы и upload_to - это только примеры. Есть и другие подобные вещи. В любом случае, они не влияют на базу данных. Так зачем же они нужны в миграциях?

Вы можете прокомментировать?

Вернуться на верх