Del via


SqlPackage for SQL-database i Microsoft Fabric

Gjelder for:SQL-database i Microsoft Fabric

I denne opplæringen lærer du hvordan du arbeider med SqlPackage i SQL-databasen i Fabric.

SqlPackage er en CLI som gir databaseportabilitet og databasedistribusjoner.

  • Portabiliteten (import/eksport) av en database som administreres i Azure eller i Fabric sikrer at dataene dine er flyttbare til andre plattformer hvis du vil overføre senere. – Portabilitet inkluderer flytting til og fra SQL Server, Azure SQL Database, Azure SQL Managed Instance og SQL-database i Fabric gjennom selvstendige databasekopier (.bacpac eller .dacpac filer).

SqlPackage kan også aktivere enkel databasedistribusjon av trinnvise endringer i databaseobjekter (nye kolonner i tabeller, endringer i eksisterende lagrede prosedyrer osv.).

  • SqlPackage kan pakke ut en .dacpac fil som inneholder definisjonene av objekter i en database, og publisere en .dacpac fil for å bruke denne objekttilstanden på en ny eller eksisterende database.
  • Publiseringsoperasjonen integreres også med SQL-prosjekter, som muliggjør frakoblede og mer dynamiske utviklingssykluser for SQL-databaser.

Forutsetning

Oppsett

SqlPackage er tilgjengelig for Windows, macOS og Linux som dotnet-verktøy. Du kan installere den ved hjelp av følgende kommando:

dotnet tool install --global Microsoft.SqlPackage

Som et globalt dotnet-verktøy er SqlPackage tilgjengelig i terminalen som fra hvilken som sqlpackage helst mappe.

Importere en database med SqlPackage

A .bacpac er en bærbar kopi av en database, nyttig for noen overførings- og testscenarioer. Du kan importere det .bacpac til en tom SQL-database med SqlPackage-import.

Merk

A .bacpac er ikke en sikkerhetskopi eller en erstatning for sikkerhetskopierings-/gjenopprettingsfunksjoner. Hvis du vil ha mer informasjon om sikkerhetskopier for SQL-databaser i Fabric, kan du se Automatiske sikkerhetskopier i SQL-databasen i Microsoft Fabric og Gjenopprett fra en sikkerhetskopi i SQL-databasen i Microsoft Fabric.

  1. Hvis du bruker et .bacpac fra et Azure- eller SQL Server-miljø, må du kanskje endre kildedatabasen for å møte SQL-databasen i Fabric T-SQL-overflateområdet. Se trekk ut og publiser portabilitet for en alternativ metode som gjør det mulig for SqlPackage-egenskaper å hoppe over enkelte objekter som ikke støttes.

  2. Opprett den nye SQL-databasen i Fabric som vanlig gjennom Fabric-grensesnittet.

  3. Kopier tilkoblingsstreng fra innstillingene.

    Skjermbilde fra Stoff-portalen som viser tilkoblingsstrengsiden for SQL-databasen.

  4. Bruk importkommandoen fra terminalen i sqlpackage-mappen. Oppgi eieren <servername> og <database_name>.

    sqlpackage /action:import /sourcefile:"C:\DatabaseName.bacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"
    
    • Erstatt tilkoblingsstreng fra dialogboksen innstillinger for SQL-database.
    • sourcefile Erstatt verdien med .bacpac navnet (DatabaseName) og location på den lokale maskinen.
  5. Følg importen med en kopieringsjobb i Data Factory i Microsoft Fabric. Hvis du vil komme i gang, kan du se Hurtiginnføring: Opprette en kopieringsjobb.

Eksportere en database med SqlPackage

Eksportering av en .bacpac er omvendt operasjon, der du targetfile er en .bacpac , og du finner den sourceconnectionstring i dialogboksen innstillinger for SQL-databaser, som i forrige eksempel. Oppgi eieren <servername> og <database_name>. Eksempel:

sqlpackage /action:export /targetfile:"C:\DatabaseName.bacpac" /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"

Hvis du vil ha mer informasjon om eksport, kan du se SqlPackage-eksport.

Trekke ut og publisere

Diagram over hvordan SQL-databaseprosjekter kan flytte skjemaendringer.

A .dacpac er en fil for databaseskjemamodell, som inneholder definisjoner for tabellene, lagrede prosedyrer og andre objekter i kildedatabasen. Denne filen kan opprettes fra en eksisterende database med SqlPackage eller fra et SQL-databaseprosjekt.

SqlPackage er i stand til å distribuere en .dacpac til en ny (tom) database eller trinnvis oppdatering av en eksisterende database for å samsvare med ønsket .dacpac tilstand.

  • Pakk ut oppretter en .dacpac eller sql-filer fra en eksisterende database.
  • Publiser distribuerer en .dacpac til en database.

SqlPackage publisere og trekke ut syntaks ligner på kommandoene for import/eksport.

Advarsel

Det anbefales å bruke SqlPackage til å distribuere et SQL-prosjekt eller .dacpac til SQL-database i Fabric. Distribusjon av en .dacpac fra Visual Studio kan mislykkes.

Hvis du vil distribuere en .dacpac som ble opprettet fra Azure SQL Database, SQL Server eller et SQL-prosjekt rettet mot en annen plattform enn SQL-database i Fabric, tilføyer du egenskapen /p:AllowIncompatiblePlatform=true til publiseringskommandoen SqlPackage.

Trekke ut og publisere portabilitet

Selv om kommandoene for import/eksport av SqlPackage fokuserer på dataportabilitet med .bacpac formatet, kan kommandoene trekke ut og publisere data med .dacpac formatet. Trekk ut og publiser egenskaper kan brukes til å kontrollere virkemåten til uttrekkings- og publiseringsoperasjonene og gi mer fleksibilitet for konverteringer mellom plattformer.

Hvis du vil trekke ut og .dacpac inkludere dataene, bruker du /p:ExtractAllTableData=true egenskapen. Uttrekkingsoperasjonen oppretter en .dacpac som inneholder både skjemaet og dataene fra kildedatabasen. Egenskapen /p:ExtractReferencedServerScopedElements=false utelukker elementer med serveromfang, som ikke støttes i SQL-databasen i Fabric. Følgende kommando trekker ut en .dacpac med data fra en eksisterende SQL-database i Fabric:

sqlpackage /action:extract /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /targetfile:"C:\extracted.dacpac" /p:ExtractAllTableData=true  /p:ExtractReferencedServerScopedElements=false

Hvis du vil publisere en .dacpac som ble trukket ut med dataene, kreves det ingen ekstra egenskaper. Flere egenskaper kan imidlertid brukes til å kontrollere virkemåten til publiseringsoperasjonen:

  • /p:AllowIncompatiblePlatform=true tillater distribusjon av en .dacpac som ble trukket ut fra en annen plattform (for eksempel Azure SQL Database, SQL Server).
  • /p:ExcludeObjectTypes=Logins;Users utelukker objekttyper som kan oppleve kompatibilitetsproblemer når du publiserer til SQL-databasen i Fabric. Hvis du vil ha en fullstendig liste over objekttyper som kan utelates, kan du se SqlPackage publisere.

På samme måte som sqlPackage-importkommandoen, må du opprette databasen i Fabric før du publiserer en .dacpac sql-database i Fabric. Du kan opprette databasen via Fabric-portalen eller et annet Stoff-grensesnitt. Følgende kommando publiserer utpakkingen .dacpac til en tom SQL-database i Fabric:

sqlpackage /action:publish /sourcefile:"C:\extracted.dacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /p:AllowIncompatiblePlatform=true /p:ExcludeObjectTypes=Logins;Users