Share via


Azure Pipelines 工作 - 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器

適用於:適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器

您可以使用 Azure Pipelines 每次成功建置之後,自動將資料庫更新部署到 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器。 您可以使用 Azure CLI 工作,以 SQL 檔案或針對資料庫使用內嵌 SQL 腳本來更新資料庫。 這項工作可以在Linux、macOS或 Windows 作業系統上執行的跨平臺代理程式上執行。

必要條件

使用 SQL 檔案

下列範例說明如何傳遞資料庫自變數並執行 execute 命令

- task: AzureCLI@2
  displayName: Azure CLI
  inputs:
    azureSubscription: <Name of the Azure Resource Manager service connection>
    scriptType: 'pscore'
    scriptLocation: inlineScript
    arguments:
      -SERVERNAME mydemoserver `
      -DBNAME pollsdb `
      -DBUSER pollsdbuser`
      -DBPASSWORD pollsdbpassword
    inlineScript: |
      az login --allow-no-subscription
      az postgres flexible-server execute --name $(SERVERNAME) \
      --admin-user $(DBUSER) --admin-password '$(DBPASSWORD)' \
      --database-name $(DBNAME) --file-path /code/sql/db-schema-update.sql

使用內嵌 SQL 腳本

下列範例說明如何使用 命令執行內嵌 SQL 腳稿 execute

- task: AzureCLI@2
  displayName: Azure CLI
  inputs:
    azureSubscription: <Name of the Azure Resource Manager service connection>
    scriptType: 'pscore'
    scriptLocation: inlineScript
    arguments:
      -SERVERNAME mydemoserver `
      -DBNAME pollsdb `
      -DBUSER pollsdbuser`
      -DBPASSWORD pollsdbpassword
      -INLINESCRIPT 
    inlineScript: |
      az login --allow-no-subscription 
      az postgres flexible-server execute --name $(SERVERNAME) --admin-user $(DBUSER) \
      --admin-password '$(DBPASSWORD)'  --database-name $(DBNAME) \
      --querytext "UPDATE items SET items.retail = items.retail * 0.9 WHERE items.id =100;" 

工作輸入

使用 Azure CLI 工作搭配 Azure Pipelines 時,您可以看到所有工作輸入的完整清單。

參數 描述
azureSubscription (必要)提供部署的 Azure Resource Manager 訂用帳戶。 只有當選取的工作版本是 0.* 時,才會顯示此參數,因為 Azure CLI 工作 v1.0 僅支援 Azure Resource Manager 訂用帳戶。
scriptType (必要)提供腳本的類型。 支援的腳本包括 PowerShell、PowerShell Core、Bat、Shell 和腳本。 在 Linux 代理程式執行時,請選擇下列其中一項:bashpscore 。 執行 Windows 代理程式時,請選擇下列其中一項: batchpspscore
scriptLocation (必要)提供腳本的路徑,例如實際檔案路徑,或在內嵌提供腳本時使用 Inline script 。 預設值是 scriptPath
scriptPath (必要)腳本的完整路徑(.ps1 或 .bat 或 .cmd 在使用 Windows 型代理程式,或使用.ps1 .sh 以 Linux 為基礎的代理程式時)或相對於預設工作目錄的路徑。
inlineScript (必要)您可以在這裏內嵌撰寫文稿。 使用 Windows 代理程式時,請使用 PowerShell 或 PowerShell Core 或批次腳本,而在使用以 Linux 為基礎的代理程式時,則使用 PowerShell Core 或殼層腳本。 對於批處理檔,請在每個 Azure 命令之前,使用前置詞「呼叫」。 您也可以使用自變數,將預先定義的和自定義變數傳遞至此腳本。
PowerShell/PowerShellCore/shell 的範例: az --version az account show
批次範例: call az --version call az account show
參數 (選擇性)提供傳遞至腳本的所有自變數。 如需範例 -SERVERNAME mydemoserver
powerShellErrorActionPreference (選擇性)在 PowerShell/PowerShell Core 腳本頂端加上行 $ErrorActionPreference = 'VALUE' 。 預設值為 stop。 支援的值為 stop、continue 和 silentlyContinue。
addSpnToEnvironment (選擇性)將您選擇的 Azure 端點服務主體識別碼和金鑰新增至腳本的執行環境。 您可以使用下列變數: $env:servicePrincipalId、$env:servicePrincipalKey 和腳本中的 $env:tenantId 。 只有在 Azure 端點具有服務主體驗證配置時,才會接受這項作業。 預設值為 false。
useGlobalConfig (選擇性)如果這是 false,此工作將會使用自己的個別 Azure CLI 組態目錄。 這可用來以平行版本執行 Azure CLI 工作」
預設值:false
workingDirectory (選擇性)執行文稿的目前工作目錄。 空白是存放庫 (build) 或成品 (release) 的根目錄,也就是 $(System.DefaultWorkingDirectory)。
failOnStandardError (選擇性)如果這是 true,當任何錯誤寫入 StandardError 數據流時,此工作將會失敗。 取消選取複選框以忽略標準錯誤,並依賴結束代碼來判斷狀態。 預設值為 false。
powerShellIgnoreLASTEXITCODE (選擇性)如果這是 false,則會將這一行 if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } 附加至腳本的結尾。 這會導致外部命令的最後一個結束代碼傳播為 PowerShell 的結束代碼。 否則,此行不會附加至腳本的結尾。 預設值為 false。

CLI 工作發生問題,請參閱 如何針對組建和發行進行疑難解答。

下一步

以下是一些可用來與 Azure Pipelines 一起部署的相關工作。