У меня есть требование по контролю версий нашей базы данных.
В настоящее время у нас есть база данных со множеством хранимых процедур. Наши разработчики изменяют эти процедуры в центральной базе данных разработки и записывают изменения локально, готовые к сборке. При сборке мы вручную обновляем эти процедуры в действующей базе данных. Когда мы были маленькой командой, это было нормально, однако по мере того, как мы растем, это становится неуправляемым.
Мы хотим перейти к более эффективной, менее подверженной ошибкам и более автоматизированной настройке. У меня есть работающая установка, которая использует Docker для локального запуска баз данных на каждой машине разработчика, с репозиторием Git, содержащим файлы Docker, DACPAC и, надеюсь, все хранимые процедуры, таблицы, функции и т. д.
Есть ли очевидный способ сделать это? Необходимо будет разрешить отображение различий в хранимой процедуре при создании запроса на включение, чтобы можно было легко просмотреть код и т. д.
Кроме того, в идеале это должно быть так же просто, как нажать «Сохранить» в файле, поэтому я, возможно, подумал, может ли проект SSMS работать? Я не хочу, чтобы нашим разработчикам приходилось вручную копировать процедуры в репозиторий и т. д.
Кроме того, когда кто-то получает последнюю версию из репозитория git, мы хотим, чтобы он обновлял локальную базу данных разработчиков. Я думал, что именно здесь в игру вступят DACPAC?
Пожалуйста, простите меня, если я неправильно понимаю некоторые теории, объясняющие, почему используются некоторые из этих технологий.
Если мои требования могут оказаться невыполнимыми, мы будем очень признательны за другое решение.
Сохраните сценарии в своем обычном проекте кода и используйте roundhouse или dbup для их развертывания.
Вы можете использовать Visual Studio для создания проекта базы данных, а затем синхронизировать изменения базы данных с этим проектом. Этот проект может контролироваться исходным кодом в репозитории Git.
Это путь, по которому я пошел. Спасибо за ваш комментарий. У меня есть проект базы данных, в который я могу внести изменения, затем щелкнуть его правой кнопкой мыши и опубликовать, когда мне нужно протестировать эти изменения.
Отвечает ли это на ваш вопрос? Как осуществить контроль версий базы данных SQL Server?