Ведение хранимых процедур в системе контроля версий - PullRequest
3 голосов
/ 08 января 2010

Как вы поддерживаете ваши хранимые процедуры? Я хотел бы сохранить их версии по нескольким причинам.

Я также буду настраивать cruisecontrol.net и собираюсь на этих выходных автоматизировать сборку.

Я думал о кодировании чего-то, что генерировало бы сценарии создания для всех схем таблиц / sprocs / udf / xml в моей базе данных разработки. Затем эти сценарии будут загружаться и обновляться в системе контроля версий каждые пару часов .... В идеале, я хотел бы сделать этот плагин / модуль для cruisecontrol.net.

Есть еще идеи?

Ответы [ 2 ]

3 голосов
/ 08 января 2010

Каждый объект, хранимая процедура или иное, а также изменение схемы обрабатывается сценарием (текстовым файлом) под управлением Subversion. Так же, как и любой другой файл в вашем проекте. Изменения в объекте / схеме выполняются путем выполнения этих сценариев для соответствующей базы данных. Наш процесс сборки объединяет их в один большой скрипт для удобства. А сценарии изменения схемы написаны таким образом, чтобы их можно было повторно запускать без предупреждений / ошибок (если не существует ... exec ...)

Я бы не советовал редактировать определения таблиц или создавать объекты непосредственно в базе данных с помощью инструментов запросов, а затем пытаться извлечь эти изменения в сценарии.

Вместо этого внесите изменения в свою базу данных dev так же, как и в qa / production, используя эти скрипты с управлением версиями.

3 голосов
/ 08 января 2010

Мы используем SQL Toolbelt от Red Gate для этой цели. Работает как шарм.

http://www.red -gate.com /

...