lorien
Я лично использую south несколько лет, очень доволен
Дык на безрыбье и рак рыба.
Давайте вернемся к началу обсуждения.
Вот есть Джанго ОРМ.
Он призван заменить стандартную парадигму работы с БД, облегчить и ускорить работу разработчика - вот она магия.
Так ли это? Все ли задачи, которые для разработчика выполняет СУБД, выполняет ОРМ.
Нет.
Сначала оказалось (конечно, это не было сюрпризом, просто подчеркиваю), что миграция от одной схемы БД к другой работает совсем не в стиле ОРМ.
Появляются помощники миграции.
Решают ли они этот вопрос?
Тоже нет и вы не один, кто с этим сталкивался и вынужден был возвращаться к прежним инструментам из комплекта СУБД. Интернет пестрит вопросами на эту тему.
Значит, корень проблемы совсем не в подготовленности разработчика, а в самом инструменте.
Я коснулся только узкой проблемы.
А есть ведь еще проблема сложных запросов, оптимизации…
Хорошая архитектура отличается от посредственной тем, как она описана в расчете на изменение внешних условий.
На примере Джанго это могло бы выглядеть так.
В документации прописываю весь перечень операций с Джанго.
По каждой операции привожу текущее состояние инструментов, модулей, которые ее выполняют и, если необходимо, план развития, изменения.
Если на текущий момент нет инструмента для миграции, я так и пишу: есть такая штука как миграция. Готового инструмента еще нет. Он запланирован (или не запланирован) и стоит в списке задач - вот ссылка на список.
У вас есть 2 варианта: сделать самим (если кто-то уже делает, вот ссылки на репозитории) или подождать.
Если у меня есть требования к таким инструментам, я их указываю.
Если требования еще не сформулированы, так и пишу: для инструмента миграции в такие-то сроки будут написаны требования для правильной их интеграции в архитектуру системы.
Подождите, люди добрые, кто собрался писать такой инструмент сам.
Вот признак хорошей архитектуры: задачи известны заранее, в системе есть четкое место, куда будут встроены инструменты для их решения.
Отсутствие инструмента на текущем этапе развития системы не делает архитектуру плохой, в отличие от отсутствия описания инструмента.
Именно так PEP делают и потом внедряют.