Подтвердить что ты не робот

Командная строка /API для сравнения схем в SSDT SQL Server Database Project?

В Visual Studio 2012 мы Schema Compare в SSDT SQL Server Database Project (DbProject), который помогает

  • Сравнить source против target
  • Обновить target, чтобы сделать его таким же, как source

Где

  • Источником и целью может быть либо база данных, проект DbProject, либо файл .dacpac.
  • Обновление можно выполнить с помощью действия по обновлению или сгенерированного script

Мой вопрос в том, можно ли иметь и где я могу получить интерфейс командной строки /API для вызова этой функции?

4b9b3361

Ответ 1

База данных SOURCE sqlpackage.exe/a: Extract/scs: Server =% Server%; Database = AspBaselineDB;/Тс:% DriveSpec%\%DacPath%\%AspBaselineDB% _baseline.dacpac

База данных TARGET sqlpackage.exe/a: Extract/scs: Server =% Server%; Database =% AspTargetDB-2%;/Тс:% DriveSpec%\%DacPath%\%AspTargetDB%.dacpac

СРАВНИТЬ и ОБРАТИТЬ Delta script sqlpackage.exe/a: Script/sf:%DriveSpec%\%DacPath%\%AspBaselineDB%_baseline.dacpac /tf:%DriveSpec%\%DacPath%\AspNetDb\%AspTargetDB%.dacpac/tdn: aspTargetdb/op:% DriveSpec%\%SqlPath%\AspNetDb\AspDbUpdate.sql

ВЫПОЛНИТЕ script sqlcmd.exe -S% Сервер%\aspnetdbAmexDev -i% DriveSpec%\%SqlPath%\AspNetDb\AspDbUpdate.sql

Я делаю это в сценариях CMD, так как наш ИТ-отдел не разрешает беззнаковые скрипты PowerShell, и они не будут покупать сертификат. Это работает безупречно, даже если вы вызываете его из Team Builds TFS 2012 или просто выполняете .CMD script из командной строки VS в качестве администратора.

Внимание!

Добавьте в свой script следующий SET: SET PATH =% PATH%; C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin

Также: как вы видите, я задаю переменные пути. Я делаю это, поскольку я касаюсь до 50 вариантов базы данных, и это единственный последовательный способ, который я нашел для создания дельта-скриптов и обновления наших баз данных DEV и TEST.

Ответ 2

Вы просмотрели SqlPackage?

Ответ 3

В настоящее время единственный способ получить доступ к API для сравнения результатов схемы - это написать модификатор/исполнитель плана развертывания, который выполняется во время развертывания / script в DacServices API. Это позволяет изучить план развертывания, созданный при сравнении dacpac с базой данных, но также предоставляет доступ к ModelComparisonResult, который представляет собой сравнение схемы который доступен в объекте контекста, переданном в метод OnExecute вкладчика. Я только что написал сообщение в блоге, которое охватывает этот процесс и может быть вам полезна - взгляните на это и, надеюсь, это поможет вам начните.

Ответ 4

I написал несколько строк по этой теме некоторое время назад. Надеюсь, вы сочтете их полезными.

В двух словах инструмент, который вы ищете, vsdbcmd.exe, который распространяется в версиях Ultimate и Premium Visual Studio.