Del via


SQL-database kildekontrollintegrasjon i Microsoft Fabric

Gjelder for:SQL database i Microsoft Fabric

I denne veiledningen lærer du hvordan du kan jobbe med SQL-databasen din i Fabric ved å bruke Fabric git-integrasjonskildekontroll.

En SQL-database i Microsoft Fabric har kildekontrollintegrasjon, eller «git-integrasjon», slik at brukere kan spore definisjonene av databaseobjektene sine over tid. Denne integreringen gjør det mulig for et team å:

  • Committer databasen til kildekontroll, som automatisk konverterer den levende databasen til kode i det konfigurerte kildekontrollarkivet (som Azure DevOps).
  • Oppdater databaseobjekter fra innholdet i kildekontrollen, som validerer koden i kildekontrollrepositoriet før du bruker en differenialendring i databasen.

Diagram over den enkle utførings- og oppdateringssyklusen mellom den direktesendte databasen og kildekontrollen.

Her er noen anbefalte ressurser hvis du ikke er kjent med git:

Denne artikkelen presenterer en serie nyttige scenarier som du kan bruke individuelt eller i kombinasjon for å administrere utviklingsprosessen din med SQL-database i Fabric:

Scenariene i denne artikkelen er dekket i en episode av Data Exposed. Se videoen for en oversikt over kildekontrollintegreringen i Fabric:

Merk

Databasenivåinnstillinger som samling og kompatibilitetsnivå er ikke inkludert i integrasjonen av kildekontroll- og distribusjonspipelines for øyeblikket. For databaseinnstillinger som du kan sette ved å bruke T-SQL etter databaseopprettelse, kan du endre databasen med skript etter utrulling.

Forutsetning

Oppsett

Denne repositoriumtilkoblingen gjelder på arbeidsområdenivå, slik at én enkelt gren i repositoriet er knyttet til arbeidsområdet. Repositoriet kan ha flere grener, men bare koden i grenen valgt i arbeidsområdets innstillinger påvirker arbeidsområdet direkte.

Hvis du vil ha en fremgangsmåte for å koble arbeidsområdet til et kildekontrollrepositorium, kan du se Komme i gang med Git-integrering. Arbeidsområdet ditt kan kobles til et Azure DevOps- eller GitHub-eksternt repository.

Legg til Fabric SQL-databasen i kildekontrollen

I dette scenariet forplikter du databaseobjekter til kildekontroll. Det kan hende du utvikler et program der du oppretter objekter direkte i en testdatabase og sporer databasen i kildekontroll, akkurat som programkoden. Som et resultat har du tilgang til historikken til databaseobjektdefinisjonene dine og kan bruke Git-konsepter som branching og merging for å tilpasse utviklingsprosessen din.

  1. Koble til SQL-databasen din i Fabric SQL-editoren, SQL Server Management Studio, MSSQL-utvidelsen for Visual Studio Code, eller andre eksterne verktøy.
  2. Opprett en ny tabell, lagret prosedyre eller et annet objekt i databasen.
  3. Velg kildekontrollknappen for å åpne kildekontrollpanelet.
  4. Merk av for den ønskede databasen. Velg Utfør. Fabric-tjenesten leser objektdefinisjoner fra databasen og skriver dem til det eksterne repositoriet.
  5. Nå kan du vise loggen for databaseobjekter i kildevisning for koderepositorium.

Etter hvert som du fortsetter å redigere databasen, inkludert å redigere eksisterende objekter, forplikt du disse endringene til kildekode ved å følge de foregående stegene.

SQL-prosjektfil

SQL-prosjektfilen i kildekontrollarkivet inneholder metadata om databasen. Integrasjon av fabric-kildekontroll bruker denne filen for å bringe mer funksjonalitet inn i kildekontroll- og distribusjonspipelines. Integrasjon med fabric-kildekontroll genererer og oppdaterer automatisk prosjektfilen. Unngå manuelle redigeringer av prosjektfilen fordi redigeringene dine i prosjektfilen blir overskrevet av Fabric-kildekontrollintegrasjon ved neste commit fra Fabric. Men hvis du vil bygge et SQL-prosjekt lokalt ved å bruke SQL-verktøy som SQL Server Management Studio eller SQL projects-utvidelsen for Visual Studio Code, kan du legge til en referanse til master.dacpac filen i prosjektfilen din.

Fabric-integrasjonen med SQL-prosjekter legger til disse metadataegenskapene i prosjektfilen:

Systemobjektreferansefunksjonen settes opp automatisk uten at noen handling kreves. Fabric-spørringseditoren tilbyr skript før og etter distribusjon under mappen Shared Queries .

Oppdater Fabric SQL-databasen fra kildekontrollen

I dette scenariet oppretter du databaseobjekter som kode i SQL Projects-utvidelsen i Visual Studio Code, og deretter committer du filene til kildekode før du oppdaterer Fabric SQL-databasen fra kildekontrollintegrasjonen. Dette scenariet er rettet mot utviklere som foretrekker å jobbe i Visual Studio Code, har eksisterende applikasjoner som bruker SQL-prosjekter, eller har mer avanserte krav til CI/CD-pipeline.

  1. Sørg for å installere den nyeste versjonen av Visual Studio Code og MSSQL- og SQL-prosjektutvidelsene for Visual Studio Code.
  2. Opprett en ny SQL-database i arbeidsområdet, og utfør den til kildekontroll uten å legge til objekter. Dette trinnet legger til de tomme SQL-prosjekt- og SQL-databaseelementmetadataene i repositoriet.
  3. Klon kildekontrollrepositoriet til den lokale maskinen.
    • Hvis du bruker Azure DevOps, velg kontekstmenyen ... for kildekontrollprosjektet. Velg Clone for å kopiere ditt Azure DevOps repository til din lokale maskin. Hvis du er ny på Azure DevOps, se guiden Code med git for Azure DevOps.
    • Hvis du bruker GitHub, velg knappen Code i repositoriet og kopier URL-en for å klone repositoriet til din lokale maskin. Hvis du er ny på GitHub, se guiden cloning a repository.
  4. Åpne den klonede mappen i Visual Studio Code. Grenen som er knyttet til arbeidsområdet, er kanskje ikke standard. Du skal se en mappe med navn <yourdatabase>.SQLDatabase i Visual Studio Code etter at du byttet gren.
  5. Opprett en .sql fil for minst én tabell du ønsker å opprette i databasen innenfor mappestrukturen for databasen din. Filen skal inneholde setningen CREATE TABLE for tabellen. Du kan for eksempel opprette en fil med navnet MyTable.sql i mappen dbo/Tables med følgende innhold:
    CREATE TABLE dbo.MyTable
    (
        Id INT PRIMARY KEY,
        ExampleColumn NVARCHAR(50)
    );
    
  6. For å sikre at syntaksen er gyldig, valider databasemodellen med SQL-prosjektet. Etter å ha lagt til filene, bruk visningen Databaseprosjekter i Visual Studio Code for å bygge prosjektet.
  7. Etter en vellykket bygging, committer du filene til kildekontroll ved å bruke kildekontrollvisningen i Visual Studio Code eller ditt foretrukne lokale git-grensesnitt.
  8. Trykk/synkroniser utføringen til det eksterne repositoriet. Sjekk at de nye filene dine vises i Azure DevOps eller GitHub.
  9. Gå tilbake til Fabric-nettgrensesnittet, og åpne Kontrollpanel for kilde i arbeidsområdet. Det kan hende du allerede har et varsel om at «du har ventende endringer fra git». Velg Oppdater (Oppdater alle) for å bruke koden fra SQL-prosjektet i databasen.
    • Det kan hende at databasen umiddelbart angir at den er uforpliktende etter oppdateringen. Denne tilstanden skjer fordi Git-integrasjonsfunksjonen gjør en direkte sammenligning av alt filinnhold generert for en elementdefinisjon, og noen utilsiktede forskjeller er mulige. Ett eksempel er innebygde attributter i kolonner. I disse tilfellene må du committe tilbake til kildekontroll i Fabric-webgrensesnittet for å synkronisere definisjonen med det som genereres som en del av en commit-operasjon.
  10. Når oppdateringen er fullført, bruk et verktøy du velger for å koble til databasen. Objektene du la til i SQL-prosjektet er synlige i databasen.

Merk

Når du gjør endringer i det lokale SQL-prosjektet, hvis det oppstår en syntaksfeil eller bruk av ikke-støttede funksjoner i Fabric, mislykkes databaseoppdateringen. Du må tilbakestille endringen i kildekontrollen manuelt før du kan fortsette.

Oppdatering av en SQL-database i Fabric fra kildekontroll kombinerer en SQL-prosjektbygging og sqlpackage-publiseringsoperasjon. SQL-prosjektbygget validerer syntaksen for SQL-filene og genererer en .dacpac fil. SqlPackage-publiseringsoperasjonen bestemmer endringene som er nødvendige for å oppdatere databasen slik at den matcher filen .dacpac . På grunn av stoffgrensesnittets strømlinjeformede natur brukes følgende alternativer på sqlpackage-publiseringsoperasjonen:

  • /p:ScriptDatabaseOptions = false
  • /p:DoNotAlterReplicatedObjects = false
  • /p:IncludeTransactionalScripts = true
  • /p:GenerateSmartDefaults = true

Du kan også klone det kildekodede SQL-prosjektet til din lokale maskin for redigering i Visual Studio Code, SQL Server Management Studio eller andre SQL-prosjektverktøy. Bygg SQL-prosjektet lokalt for å validere endringer før du committer dem til kildekontroll.

Opprette et grenarbeidsområde

I dette scenariet setter du opp et nytt utviklingsmiljø i Fabric ved at Fabric lager et duplisert sett med ressurser basert på kildekontrolldefinisjonen. Den dupliserte databasen inkluderer databaseobjektene du sjekket inn i kildekodekontrollen. Dette scenariet er for utviklere som fortsetter sin applikasjonsutviklingslivssyklus i Fabric og benytter kildekontrollintegrasjonen fra Fabric.

  1. Fullfør scenarioet med å konvertere Fabric SQL-databasen til kode i kildekontrollen.
    • Du bør ha en gren i et kildekontrollrepositorium med både et SQL-prosjekt og fabric-objektmetadataene.
  2. Åpne kildekontrollpanelet i Fabric-arbeidsområdet. Velg Gren ut til nytt arbeidsområde på Fanen Forgreninger på kildekontrollmenyen.
  3. Spesifiser navnene på grenen og arbeidsområdet som skal opprettes. Grenen opprettes i kildekontrollrepositoriet og fylles med det forpliktede innholdet til grenen som er knyttet til arbeidsområdet du forgrener fra. Arbeidsområdet opprettes i Fabric.
  4. Gå til det nyopprettede arbeidsområdet i Fabric. Når opprettingen av databasen er fullført, inneholder den nyopprettede databasen nå objektene som er angitt i koderepositoriet. Hvis du åpner redigeringsprogrammet for stoffspørring og navigerer i Objektutforsker, har databasen nye (tomme) tabeller og andre objekter.

Slå sammen endringer fra én gren til en annen

I dette scenariet bruker du kildekoderepositoriet for å gjennomgå databaseendringer før de er tilgjengelige for distribusjon. Dette scenariet er for utviklere som jobber i et teammiljø og bruker kildekode for å administrere databaseendringene sine.

Opprett to arbeidsområder med tilknyttede grener i samme repositorium, som beskrevet i forrige scenario.

  1. Gjør endringer i databaseobjektene med databasen på den sekundære grenen.
    • Du kan for eksempel endre en eksisterende lagret prosedyre eller opprette en ny tabell.
  2. Sjekk inn disse endringene i kildekontroll ved å bruke Commit-knappen på kildekontrollpanelet i Fabric.
  3. I Azure DevOps eller GitHub, opprett en pull request fra den sekundære grenen til den primære grenen.
    • I pull-forespørselen kan du se endringene i databasekoden mellom det primære arbeidsområdet og det sekundære arbeidsområdet.
  4. Når du har fullført pull-forespørselen, oppdateres kildekontrollen, men databasen i Fabric på det primære arbeidsområdet endres ikke. Hvis du vil endre den primære databasen, oppdaterer du det primære arbeidsområdet fra kildekontrollen ved hjelp av Oppdater-knappen på kildekontrollpanelet i Fabric.

Administrer statiske data med et post-deploying-skript

I dette tilfellet kontrollerer du radene i en oppslagstabell i databasen din med kildekodekontroll. Muligheten som muliggjør denne funksjonaliteten, både før og etter utrulling, gjelder også for distribusjonspipelines, slik at du kan bruke de samme skriptene til å håndtere statisk data i begge scenarioer.

  1. Fra en SQL-database i Fabric som er koblet til kildekontroll, identifiser eller lag en tabell som du ønsker å administrere statiske data for. For eksempel kan du ha en dbo.Colors tabell som brukes av applikasjonen din og som har et kjent sett med verdier som ikke endres ofte.

  2. Opprett en ny spørring i SQL-databaseeditoren i Fabric. I spørringseditoren, legg til en MERGE setning for å administrere innholdet i Colors tabellen. Eksempel:

    MERGE dbo.Colors AS target
    USING (VALUES
        (1, 'Red'),
        (2, 'Green'),
        (3, 'Blue')
    ) AS source (Id, Name)
    ON target.Id = source.Id
    WHEN MATCHED THEN
        UPDATE SET Name = source.Name
    WHEN NOT MATCHED BY TARGET THEN
        INSERT (Id, Name) VALUES (source.Id, source.Name)
    WHEN NOT MATCHED BY SOURCE THEN
        DELETE;
    
  3. Gi spørringen nytt navn til Post-Deployment-StaticData.sql og flytt den til Delte forespørsler.

  4. Når du er inne i Delte spørringer, velg ... menyen for spørringen og velg Sett som Skript etter utrulling.

Denne spørringen kjøres automatisk som en del av enhver oppdatering fra kildekontroll- eller distribusjonspipeline-distribusjon, slik at du kan administrere de statiske dataene i Colors tabellen ved å bruke kildekontroll. Du kan redigere spørringen i Fabric-spørringseditoren og gjøre endringer i kildekode for å håndtere endringer i de statiske dataene over tid. I tillegg, siden skript før og etter distribusjon er inkludert i SQL-prosjektet, kan du også redigere spørringen fra din lokale maskin ved å bruke Visual Studio Code eller andre SQL-prosjektverktøy, og deretter lagre disse endringene i kildekontroll. Lær mer om skript før og etter utrulling i dokumentasjonen for SQL-prosjekter.