У меня есть проект базы данных в Visual Studio 2017. Наш проект базы данных управляется так же, как и любая другая библиотека кода, где несколько разработчиков могут обновлять проект по мере необходимости.Чтобы облегчить задачу развертывания, я создал пользовательскую задачу развертывания в нашем процессе сборки TFS 2018 (vNext), которая представляет собой сценарий powershell, который вызывает sqlPackage.exe.SqlPackage сравнивает наш проект скомпилированной базы данных (файл * .dacpac) с нашей целевой базой данных (в Dev, QA и т. Д.).Я настроил пользовательский шаг так, чтобы он записывал ожидаемые изменения на диск, чтобы у меня была запись того, что было изменено, затем sqlPackage выполняет второй проход, чтобы применить изменения к целевой целевой базе данных.
Мой администратор БДвключил хранилище запросов в нашей базе данных SQL 2016Во время моего развертывания sqlPackage, один из начальных шагов - отключить хранилище запросов, это делает моего администратора базы данных несчастным.Он хочет иметь возможность сравнивать изменения до и после развертывания, но если хранилище запросов отключается, мы теряем историю.
Я попробовал несколько переключателей в документации (https://msdn.microsoft.com/en-us/library/hh550080(v=vs.103).aspx#Publish%20Parameters,%20Properties,%20and%20SQLCMD%20Variables), но не могу найти магический параметр.
Как мне остановить SqlPackage от выключенияхранилище запросов?
Мой текущий сценарий:
sqlPackage.exe /Action:Script /SourceFile: myPath\MyDatabaseName.dacpac" /OutputPath:"myPath\TheseAreMyChangesThatWillBeApplied.sql" /TargetConnectionString:"Integrated Security=true;server=MyServer;database=MyDatabase;" /p:DropObjectsNotInSource=false /p:DropPermissionsNotInSource=false /p:DropRoleMembersNotInSource=false /p:BlockOnPossibleDataLoss=True /Variables:"CrossDatabaseRefs=CrossDatabaseRefs
Есть ли лучший способ? Я удивлен, что мне пришлось написать пользовательскую задачу сборки TFS, чтобы сделать это. Что заставляет меня думать, чтоЯ мог бы делать это трудным путем (но это работало довольно хорошо для меня в течение последних нескольких лет). Я люблю проекты баз данных, мне нравится, что они применяют ссылки и гарантируют, что мы не нарушаем другие объекты, когда столбецупал (например).
Любое понимание будет с благодарностью.