Dela via


Azure Pipelines-uppgift – Azure Database for PostgreSQL – flexibel server

GÄLLER FÖR: Azure Database for PostgreSQL – flexibel server

Du kan automatiskt distribuera dina databasuppdateringar till en flexibel Azure Database for PostgreSQL-server efter varje lyckad version med Azure Pipelines. Du kan använda Azure CLI-uppgiften för att uppdatera databasen antingen med en SQL-fil eller ett infogat SQL-skript mot databasen. Den här uppgiften kan köras på plattformsoberoende agenter som körs på Linux-, macOS- eller Windows-operativsystem.

Förutsättningar

Använda SQL-fil

I följande exempel visas hur du skickar databasargument och kör execute kommandot

- 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

Använda infogat SQL-skript

I följande exempel visas hur du kör ett infogat SQL-skript med hjälp av execute kommandot .

- 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;" 

Uppgiftsindata

Du kan se den fullständiga listan över alla uppgiftsindata när du använder Azure CLI-uppgift med Azure Pipelines.

Parameter Description
azureSubscription (Krävs) Ange Azure Resource Manager-prenumerationen för distributionen. Den här parametern visas endast när den valda uppgiftsversionen är 0.* eftersom Azure CLI-uppgift v1.0 endast stöder Azure Resource Manager-prenumerationer.
scriptType (Krävs) Ange typ av skript. Skript som stöds är PowerShell, PowerShell Core, Bat, Shell och skript. När du kör på en Linux-agent väljer du något av följande: bash eller pscore . När du kör Windows-agenten väljer du något av följande: batch,ps och pscore.
scriptLocation (Krävs) Ange sökvägen till skriptet, till exempel en riktig filsökväg eller använd Inline script när du anger skripten infogade. Standardvärdet är scriptPath.
scriptPath (Krävs) Fullständigt kvalificerad sökväg för skriptet(.ps1 eller .bat eller .cmd när du använder Windows-baserad agent annars .ps1 eller .sh när du använder linux-baserad agent) eller en sökväg i förhållande till standardarbetskatalogen.
inlineScript (Krävs) Du kan skriva skripten infogat här. När du använder Windows-agenten använder du PowerShell eller PowerShell Core eller batchskript medan du använder PowerShell Core- eller shell-skript när du använder Linux-baserade agenter. För batchfiler använder du prefixet "call" före varje Azure-kommando. Du kan också skicka fördefinierade och anpassade variabler till det här skriptet med hjälp av argument.
Exempel för PowerShell/PowerShellCore/shell: az --version az account show
Exempel för batch: call az --version call az account show.
Argument (Valfritt) Ange alla argument som skickas till skriptet. Till exempel -SERVERNAME mydemoserver.
powerShellErrorActionPreference (Valfritt) Förbereder raden $ErrorActionPreference = "VALUE" överst i PowerShell/PowerShell Core-skriptet. Standardvärdet är stop. Värden som stöds är stop, continue och silentlyContinue.
addSpnToEnvironment (Valfritt) Lägger till tjänstens huvudnamns-ID och nyckeln för den Azure-slutpunkt som du valde i skriptets körningsmiljö. Du kan använda dessa variabler: $env:servicePrincipalId, $env:servicePrincipalKey och $env:tenantId i skriptet. Detta respekteras endast när Azure-slutpunkten har autentiseringsschema för tjänstens huvudnamn. Standardvärdet är "false".
useGlobalConfig (Valfritt) Om detta är falskt använder den här uppgiften en egen separat Azure CLI-konfigurationskatalog. Detta kan användas för att köra Azure CLI-uppgifter i parallella versioner"
Standardvärde: false
workingDirectory (Valfritt) Aktuell arbetskatalog där skriptet körs. Tom är roten för lagringsplatsen (build) eller artefakter (release), som är $(System.DefaultWorkingDirectory).
failOnStandardError (Valfritt) Om detta är sant misslyckas den här uppgiften när eventuella fel skrivs till StandardError-strömmen. Avmarkera kryssrutan för att ignorera standardfel och förlita dig på slutkoder för att fastställa statusen. Standardvärdet är "false".
powerShellIgnoreLASTEXITCODE (Valfritt) Om detta är falskt läggs raden if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } till i slutet av skriptet. Detta gör att den sista slutkoden från ett externt kommando sprids som slutkod för PowerShell. Annars läggs inte raden till i slutet av skriptet. Standardvärdet är "false".

Om du har problem med CLI-uppgift kan du läsa om hur du felsöker build och release.

Nästa steg

Här följer några relaterade uppgifter som kan användas för att distribuera med Azure Pipelines.