Есть несколько библиотек, предоставляющих Ruby-style migrations, но это не совсем то, что мне нужно. Ближе всего к ожиданиям из готового сейчас RedGate SQLPackager, но он во-первых платный, во-вторых хочется поддержки именно жизненного цикла в духе AutoPatch.
По опыту, идеальный процесс должен выглядеть так
- программисты работают с локальной или dev базой напрямую
- перед началом тестирования при помощи инструмента типа SQLCompare строится дифференциальный sql скрипт между дев-базой и stage. При этом скрипт должен быть в "родном" для БД формате, чтобы не упереться случайно в недостатки фреймворка
- этот скрипт фиксируется в репозитории и затем на основе всех скриптов обновления строится пакет для обновления БД
- этот пакет разворачивается на требуемой базе, причем package manager должен предоставлять либо режим с ручным контролем (для боевой базы, чтобы не страшно было), либо автоматический режим (для всевозможного continious integration
Ссылки по теме
2 комментария:
Старый конешно пост, но реально это все потдерживает DbPro встроенный в студию.
Миш, может я давно DBPro не видел, но разве там есть
* версионность (чтобы в базе были версии модулей)
* многомодульность (чтобы допустим поставить два разных модуля в одну бд)
* интеграцию в дистрибутив?
Отправить комментарий