2016-09-14 7 views
1

В настоящее время мы выполняем скрипты на основе сценариев (SQL Server 2012), выполняемые вручную, за пределами нашего развертывания CI/CD. Какими способами (включая набор инструментов) мы можем автоматизировать развертывание изменений БД с помощью TFS 2015 Update 3?Каковы различные подходы к развертыванию изменений БД с использованием TFS 2015?

ответ

5

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

Существует государственный подход, в котором используется технология сравнения, чтобы посмотреть на вашу базу данных VCS/dev/test/staging и сравнить ее с производством. SQL Source Control и DLM Automation Suite от Redgate Software делают это, как и другие инструменты сравнения. То, что вы сделаете, это использовать командную строку или программный интерфейс для установки источника и цели, захвата вывода и последующего использования в качестве артефакта в процессе выпуска. Я мог бы включить обзор артефакта в качестве сценария в вашем потоке.

Обратите внимание, что есть некоторые проблемы, с которыми сравниваются сравнения на уровне штата. Переименование, разбиение, слияние, перемещение данных, несколько других. У некоторых инструментов сравнения есть способы обойти это, некоторые нет. Помните, что это может быть проблемой. Если у вас более зрелая база данных, возможно, нет, но вы должны это учитывать. SQL Source Control позволяет настраивать сценарии миграции, которые могут справиться с этими проблемами.

Другой подход - это бегун сценария или стратегия перехода, где каждое изменение, которое вы делаете в базе данных dev, записывается как упорядоченный скрипт, а структура выполняет их по порядку, если они необходимы. Некоторые предпочитают некоторые люди, так как вы можете точно определить, какой код будет выполняться в dev и время развертывания. ReadyRoll от Redgate Software, Liquibase, Rails Migrations, DBUp, FlywayDB, используют эту стратегию.

Ничего из этого не лучше или хуже. Оба работают, оба имеют плюсы и минусы, но на самом деле выбор сводится к вашему уровню комфорта и предпочтениям.

Раскрытие информации: Я работаю для программного обеспечения Redgate.

1

Если изменения в БД изменяются, это означает использование баз данных SQL Server (файлы .sqlproj) с помощью Team Foundation Build в Team Foundation Server.

Есть несколько способов, можно достичь этого:

  • Использование MSBuild задача с некоторыми аргументами, чтобы опубликовать ваш SQL проект во время сборки.
  • Добавьте цель развертывания в свой файл sqlproj, запустите объект после сборки .
  • Или добавьте шаг «Batch Script» в свое строение определение для запуска «SqlPackage.exe» для публикации файла .dacpac.

Подробнее см. В этом блоге: Deploying SSDT During Local and Server Build.


Что касается использования TFS2015, вы также можете попробовать использовать SQL Server Database Deployment задачу.

Используйте эту задачу для развертывания базы данных SQL Server для существующего экземпляра сервера SQL . Задача использует DACPAC и SqlPackage.exe, которые обеспечивает мелкозернистый контроль над созданием и обновлением базы данных.