Последние два месяца я искал решения или практики для управления выпусками в базах данных. Я ищу то, что люди считают лучшим процессом для этого.
У нас есть 3 среды для наших баз данных:
- развитие
- Пользовательское приемочное тестирование (UAT)
- производство
Иногда проблема заключается в том, что мы вносим изменения в некоторые вещи в нашей базе данных разработки, и приходит время для развертывания, некоторые функции могут быть не готовы к выпуску в UAT.
Недавно мы начали использовать элемент управления Red Gate SQL Source для хранения всех наших объектов (с регулярными коммитами).
Я думал о том, чтобы перейти на основе наборов изменений (то есть сказать, что все, начиная с набора изменений X и обратно, теперь передается в UAT), однако это означает, что люди проверяют свой код только в контроле исходного кода непосредственно перед тем, как мы выполняем развертывание, которое может запутаться ( тем более что люди забывчивы). Другая проблема, связанная с подходом к изменению, заключается в том, что если в хранимой процедуре есть ошибка, которую необходимо исправить, номер набора изменений в конечном итоге будет выходить за рамки нашего максимального набора изменений для ревизии, поэтому сделаем так, чтобы при необходимости воссоздать базу данных с максимальным набором изменений, мы бы снова выдвинули ошибку.
Есть предложения по процессу?
Спасибо