Я программирую веб-приложение, используя sqlalchemy. Все было гладко на первом этапе разработки, когда сайт не работал. Я мог бы легко изменить схему базы данных, просто удалив старую базу данных sqlite и создав новую с нуля.
Сейчас сайт находится в рабочем состоянии, и мне нужно сохранить данные, но я все еще хочу сохранить первоначальную скорость разработки, легко преобразовав базу данных в новую схему.
Итак, давайте предположим, что у меня есть model.py в ревизии 50 и model.py в ревизии 75, описывающей схему базы данных. Между этими двумя схемами большинство изменений тривиально, например, новый столбец объявлен со значением по умолчанию, и я просто хочу добавить это значение по умолчанию к старым записям.
В конце концов, некоторые изменения могут быть не тривиальными и требовать некоторого предварительного вычисления.
Как (или вы) будете обращаться с быстро меняющимися веб-приложениями, скажем, с одной или двумя новыми версиями рабочего кода в день?
Кстати, сайт написан на пилонах, если это что-то меняет.