Передать переменные SQLCMD поставщику dbDacFx с помощью msdeploy
В настоящее время я использую провайдера msdeploy dbDacFx для развертывания.dacpac в базе данных. Dacpac ожидает три переменные SQLCMD. Синтаксис, который я использую, выглядит следующим образом:
-setParam:kind=SqlCommandVariable,scope=Database.dacpac,match=foo1,value="foo1 value"
Я пробовал все, что смог найти, но, к сожалению, нет документации по этому процессу. Вывод, который я получаю от msdeploy, говорит Missing values for the following SqlCmd variables: foo1 foo2 foo3
,
Если кто-то может заметить, что я делаю неправильно, это было бы замечательно. Если кто-нибудь знает, где взять документацию, это было бы здорово. Я бы с радостью принял любые ответы, в которых говорилось бы, что я должен делать, но я бы хотел понять, что представляют собой все эти ценности и ПОЧЕМУ я делаю это неправильно.
Редактировать: в этот момент может показаться, что такая опция не существует для dbDacFx. В нашем случае использования этой функции мы пытаемся развернуть одну и ту же базу данных шаблонов (управляемую в проектах Visual Studio SQL) на более чем 70 базах данных, что мы хотели бы сделать параллельно. dbSqlPackage (кроме того, что устарел) не является потокобезопасным и не допускает параллельного развертывания. dbDacFx преодолевает этот недостаток, однако он не может (в моем эксперименте) передавать SqlCmdVariables, которые находятся на уровне проекта, и не может использовать профили публикации, такие как dbSqlPackage. Я связываюсь с членом команды веб-развертывания и буду публиковать любые обновления, если смогу выяснить, как преодолеть любой из этих недостатков.
1 ответ
После отправки по электронной почте некоторых сотрудников Microsoft из команды MSDeploy... оказывается, что это невозможно в настоящее время, но может быть рассмотрено для будущего выпуска.