Как добавить существующие хранимые процедуры SQL Server в систему контроля версий? - PullRequest
6 голосов
/ 24 августа 2011

Сейчас у нас есть несколько серверов баз данных с запущенными хранимыми процедурами, которые плохо документированы и больше нигде не существуют.

Когда вносится изменение в одно из них, журнал отсутствует, и действительно трудно понять, почему что-то, что работало, внезапно перестало работать.

Недавно мы перешли на использование правильного контроля версий с использованием SVN, поэтому я надеялся добавить эти хранимые процедуры в контроль версий.

Мы магазин .Net, и я знаю, что существует тип проекта Database. Это был бы хороший подход?

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

Ответы [ 5 ]

5 голосов
/ 24 августа 2011

Проверьте управление исходным кодом в Redgate. Он имеет встроенный в SSMS интерфейс и может интегрироваться с SVN.

http://www.red -gate.com / продукты / SQL-разработка / SQL-источник-контроль /

3 голосов
/ 24 августа 2011

В Visual Studio я создал пустой проект и добавил в него скрипты.Это часть моего решения для схемы сервера.Теперь каждый скрипт находится под контролем исходного кода.Я также добавил структуру папок, чтобы сохранить разумность.Когда приложение будет завершено, у нас будет около 3000 сценариев под управлением исходного кода для нескольких схем серверов.Не сказать, что это лучшее, но это работает для нашего проекта.В решении также имеется утилита, которая использует SMO для фактического запуска / развертывания всех сценариев, поэтому все содержится в одном решении.Снимок экрана прилагается, показывая некоторые структуры для вашей справки ...

Source Control Scripts

2 голосов
/ 24 августа 2011

A проект базы данных - хороший выбор, на мой взгляд. Вы можете импортировать всю базу данных, включая таблицы, представления, хранимые процедуры и т. Д. Visual Studio будет использовать эту информацию для построения модели базы данных в памяти.

Он может использовать это для нескольких целей, в том числе для обеспечения правильного доступа хранимых процедур к таблицам. Например, он поймал меня на попытке вставить параметр Integer в столбец smallint.

1 голос
/ 24 августа 2011

Да, я бы порекомендовал проект базы данных - вы можете синхронизировать элементы базы данных (таблицы / хранимые процедуры и т. Д.) В любом направлении: исходные файлы в БД или БД в исходные файлы.

Вы можете начать с создания пустого проекта базы данных, а затем выполнить синхронизацию из существующих баз данных с вашим проектом, который создаст для вас сценарии .sql create.

И вы можете использовать проект базы данных для создания сценариев развертывания.Очень удобно.

1 голос
/ 24 августа 2011

Мы используем проект базы данных и имеем хорошие результаты с ним.Все DML существуют в проекте (более 3000 элементов).

Разработчики должны внести изменения в DML в системе контроля версий и зарегистрировать их, и только то, что отмечено, будет повышено / развернуто.

Наш источник контроля - TFS, и я заметил, что удаление процедур из интерфейса VS не всегда помечает процесс для удаления в системе контроля версий.Не уверен, что SVN делает с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...