Назад | Перейти на главную страницу

контроль версий для схемы и конфигурации базы данных

Каковы лучшие практики для управления изменениями схемы и конфигурации базы данных?

какие инструменты ты используешь?

Майкл

Есть отличная серия статей К. Скотта Аллена через Coding Horror: поставьте свою базу данных под контроль версий о контроле версий базы данных. Они ориентированы на SQL Server, но могут быть применимы к другим средам.

  1. Три правила работы с базой данных
  2. Исходный уровень
  3. Изменить скрипты
  4. Представления, хранимые процедуры и т.п.
  5. Ветвление и слияние

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

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

Сохраните файлы сценариев, как и любой другой файл для вашего приложения, в VCS.

я приобрел сценарий VBS, который использует SQL-DMO для сценария SQL Serverобъекты. Затем он использует SourceSafe интеграция для проверки их в системе контроля версий. Запустите его каждую ночь, и у вас будет исторический DDL.

C:\WINNT\system32\cscript.exe vssAgent.vbs theServerName

vssAgent.vbs (Ссылка 1, Ссылка 2, Ссылка 3)

Вам нужно будет настроить некоторые логины / пароли в vbs чтобы соответствовать вашим учетным данным VSS.

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