Автоматизация сравнения схем базы данных с использованием технологий Microsoft (SSDT)

Средства данных SQL Server (SSDT) ​​включают утилиту сравнения схем, которую можно использовать для сравнения двух определений базы данных. Источником и целью сравнения может быть любая комбинация подключенной базы данных, проекта базы данных SQL Server, снимка или файла.dacpac. Результаты сравнения отображаются в виде набора действий, которые необходимо выполнить с целью, чтобы сделать ее такой же, как источник. После завершения сравнения вы можете обновить цель напрямую (если целью является проект или база данных) или создать сценарий обновления sql.

Есть ли способ автоматизировать процесс создания сценария обновления с использованием современных (2017) технологий Microsoft?

Примечание. Автоматизация может поддерживаться с помощью библиотеки.net или интерфейса командной строки.

1 ответ

Есть несколько способов сделать это, но самый простой из них - использовать MSBuild, как предлагает @Crowcoder. Это строки кода, которые я использую в сценарии powershell.

Извлеките dacpac из базы данных (это может вам не понадобиться, но если вам это нужно, то вам нужен sqlpackage для этого. Возможное расположение: C:\Program Files (x86)\Microsoft SQL Server\140\DAC\bin\SqlPackage.exe)

$cmd = "`"$sqlPackagePath`" /Action:Extract /tf:`"$dacpacPath`" /SourceConnectionString:`"$connString;Initial Catalog=$dbName;`""

Создать сценарий публикации (возможное расположение: C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe)

$cmd = "`"$msBuildPath`" `"$sqlProjPath`" /p:Configuration=Release /t:Build /p:SqlPublishProfilePath=`"$publishConfigPath`""
Другие вопросы по тегам