По моему опыту, в корпоративной среде нет простого варианта.
Три метода ниже являются основными (независимо от используемого набора инструментов).
1) Записать всю схему в файл и сохранить файл в хранилище
ПРОФИ: Легко
ПРОТИВ: Большой файл - трудно редактировать вручную -трудно понять, что изменилось с последней версии - не может развернуть его, поэтому потребуется какой-то механизм для подготовки сценария DIFF между системами Dev и Test / Live
2) Дамп каждого объекта базы данных в отдельныйфайл, хранящийся в хранилище.
PROS: Очень легко увидеть, что изменилось.Может легко создавать сценарии развертывания для большинства объектов (хотя некоторые вещи все еще требуют сценария DIFF, например, изменения определения столбца)
CONS: запускать сценарии в определенном порядке - управление этим процессом может быть довольно сложным.
3) Обрабатывать каждое изменение как отдельную операцию с помощью собственного SQL-скрипта с последовательной нумерацией.
PROS: разработчикам легко создавать сценарии, те же сценарии можно запускать для каждой платформы (теоретически)
CONS: Кошмар для управления - заказ может стать проблемой, очень труднойчтобы увидеть, что изменилось в выпуске, или когда изменился данный объект.
Запустив все 3 варианта, я бы сказал, что с 2 было приятно работать, но сначала потребовалось много времени для настройки- получение всех скриптов, выполненных в правильном порядке, заняло много времени - и это все еще требовало использования инструмента Различия базы данных для генерации скриптов для UAT / Live.Поэтому я бы порекомендовал смесь между 1 и 2.