Генерация SQL Alter запросов по разнице структур таблиц в БД?
Есть development-instance SQL Server-а, на котором крутится СУБД с кучей таблиц. В процессе разработки некоторые таблицы альтерятся, добавляются хранимые процедуры, добавляются новые таблицы.
Потом всё это нужно переносить на production-instance. И чем больше обьем изменений (а с каждым разом он всё больше) — тем дольше допиливать production-instance до состояния, пригодного к использованию с новой версией.
Соответственно, вопрос: есть ли такая софтина, которая бы на выходе давала скрипт, альтерящий production-базу до development-версии?
Если для только для SQL Server, то я бы посоветовал посмотреть на dbForge Schema Compare for SQL Server. Очень, очень достойный инструмент, к тому же бесплатная редакция.
Используйте систему контроля версий базы данных, например, liquibase. Скрипты diff дают очень ненадежный результат, так как они сравнивают разницу между конечным и начальным результатом и не имеют возможности узнать что было посередине. К примеру если вы переименовали таблицу, может быть сгенерирован код drop table + create table вместо rename.
Сталкиваюсь с такой же проблемой как Вы, много лет уже. Все системы автоматизированной генерации скриптов изменений, часто работают не корректно или пропускают нужные элементы.
Мы все таки заставляем всех разработчиков вести скрипт изменений системы, собираем потом все скрипты от разработчиков в пакетное обновление. И уже на рабочие базы накатываем все эти пакетные обновления.
Ведем четко контроль версий эих всех обновлений, и детализацию скриптов SQL всех этих обновлений.