Я программирую веб-приложение с использованием sqlalchemy. На первом этапе разработки все было гладко, когда сайт не был в производстве. Я мог бы легко изменить схему базы данных, просто удалив старую базу данных sqlite и создав новую с нуля.Как эффективно управлять частыми изменениями схемы с использованием sqlalchemy?
Теперь сайт находится в производстве, и мне нужно сохранить данные, но я все же хочу сохранить свою первоначальную скорость разработки, легко конвертируя базу данных в новую схему.
Предположим, что у меня есть model.py в ревизии 50 и model.py ревизии 75, описывающей схему базы данных. Между этими двумя схемами большинство изменений тривиальны, например, новый столбец объявлен со значением по умолчанию, и я просто хочу добавить это значение по умолчанию к старым записям.
В конечном счете несколько изменений могут быть не тривиальными и требуют предварительного вычисления.
Как обрабатывать быстро изменяющиеся веб-приложения, скажем, одну или две новые версии производственного кода в день?
Кстати, сайт написан на Pylons, если это имеет значение.
«Так стоит ли мигрировать? " должен быть отдельный вопрос. У вас есть ответ о том, как мигрировать. Просьба о случаях использования для sqlalchemy-migrate и ваш конкретный вариант использования для более конкретного, чем этот общий вопрос. –
ОК, поэтому мне нужно задать еще один вопрос о миграции, чтобы узнать, какой ответ принять. – ascobol
@ascobol: «Еще один вопрос о миграции, чтобы узнать, какой ответ принять». Ложь. У вас есть ответы здесь. «Это инструмент [X] стоит?» не имеет отношения к «как мне перейти?». У вас есть ответы на «как?». Спросить о значении одного конкретного инструмента не имеет отношения к «как?» –