Как эффективно управлять частыми изменениями схемы с помощью sqlalchemy?

Я программирую веб-приложение, используя sqlalchemy. Все было гладко на первом этапе разработки, когда сайт не работал. Я мог легко изменить схему базы данных, просто удалив старую базу данных sqlite и создав новую с нуля.

Сейчас сайт находится в разработке, и мне нужно сохранить данные, но я все еще хочу сохранить исходную скорость разработки, легко преобразовав базу данных в новую схему.

Допустим, у меня есть model.py версии 50 и model.py версии 75, описывающие схему базы данных. Между этими двумя схемами большинство изменений тривиальны, например, новый столбец объявляется со значением по умолчанию, и я просто хочу добавить это значение по умолчанию к старым записям.

В конце концов, несколько изменений могут оказаться нетривиальными и потребовать некоторых предварительных вычислений.

Как вы справляетесь (или будете) обрабатывать быстро меняющиеся веб-приложения, скажем, с одной или двумя новыми версиями производственного кода в день?

Между прочим, сайт написан на Pylons, если это имеет какое-то значение.

52
задан ascobol 10 October 2013 в 00:40
поделиться