Запуск SQL против нескольких БД в azure конвейере - PullRequest
0 голосов
/ 21 марта 2020

Я хочу настроить шаг в процессе выпуска для конвейера azure, где я могу запустить SQL из файла, зарегистрированного в репозитории для нескольких баз данных.

В моей среде у меня есть один central db, одна из таблиц, например, для таблицы «Control», поддерживает соединение со всеми базами данных, для которых мне нужно запустить sql во время развертывания.

Что я не хочу делать, так это настроить шаг развертывания для каждой базы данных. Powershell мой единственный друг? Если да, то как я могу сообщить PowerShell, что за SQL в файле зарегистрировано во время развертывания?

1 Ответ

0 голосов
/ 24 марта 2020

Что я не хочу делать, это настроить шаг развертывания для каждой базы данных. Powershell мой единственный друг? Если да, то как я могу сообщить PowerShell, что за SQL в файле, зарегистрированном во время развертывания?

В вашем случае Powershell кажется наиболее подходящим.

Чтобы получить SQL в файле, зарегистрированном во время развертывания, мы могли бы использовать сценарии powershell для получения имен файлов и путей, например:

$files=$(git diff HEAD HEAD~ --name-only)
$temp=$files -split ' '
$count=$temp.Length
echo "Total changed $count files"
For ($i=0; $i -lt $temp.Length; $i++)
{
  $name=$temp[$i]
  echo "this is $name file"
  Copy-Item "$name" -Destination "$(System.DefaultWorkingDirectory)\SQLDeploymentFolder"
}

Проверьте тикет для более подробной информации.

Затем мы можем использовать расширение Выполнить SQL Серверные сценарии или Выполнить SQL / SQLCMD Сценарии, передающие несколько переменных SQLCMD для всех SQL скриптов в папке.

Надеюсь, это поможет.

...