Dela via


SqlPackage för SQL-databas i Microsoft Fabric

Gäller för:SQL-databas i Microsoft Fabric

I den här självstudien får du lära dig hur du arbetar med SqlPackage i din SQL-databas i Fabric.

SqlPackage är ett CLI som tillhandahåller databasportabilitet och databasdistributioner.

  • Portabiliteten (import/export) för en databas som hanteras i Azure eller i Fabric säkerställer att dina data är portabla till andra plattformar om du vill migrera senare. – Portabilitet omfattar förflyttning till och från SQL Server, Azure SQL Database, Azure SQL Managed Instance och SQL-databas i Fabric via fristående databaskopior (.bacpac eller .dacpac-filer).

SqlPackage kan också möjliggöra enkla databasdistributioner av inkrementella ändringar av databasobjekt (nya kolumner i tabeller, ändringar i befintliga lagrade procedurer osv.).

  • SqlPackage kan extrahera en .dacpac fil som innehåller definitionerna av objekt i en databas och publicera en .dacpac fil för att tillämpa objekttillståndet på en ny eller befintlig databas.
  • Publiceringsåtgärden integreras också med SQL-projekt, vilket möjliggör offline- och mer dynamiska utvecklingscykler för SQL-databaser.

Förutsättningar

Ställ in

SqlPackage är tillgängligt för Windows, macOS och Linux som ett dotnet-verktyg. Du kan installera den med hjälp av följande kommando:

dotnet tool install --global Microsoft.SqlPackage

Som ett globalt dotnet-verktyg är SqlPackage tillgängligt i terminalen från sqlpackage valfri mapp.

Importera en databas med SqlPackage

A .bacpac är en bärbar kopia av en databas, användbar för vissa migrerings- och testscenarier. Du kan importera den .bacpac till en tom SQL-databas med SqlPackage-import.

Kommentar

A .bacpac är inte en säkerhetskopia eller en ersättning för säkerhetskopierings-/återställningsfunktioner. Mer information om säkerhetskopior för SQL Database i Fabric finns i Automatiska säkerhetskopior i SQL-databasen i Microsoft Fabric och Återställning från en säkerhetskopia i SQL-databasen i Microsoft Fabric.

  1. Om du använder en .bacpac från en Azure- eller SQL Server-miljö kan det behövas att du ändrar källdatabasen för att den ska överensstämma med SQL-databasen i Fabric T-SQL-yta. Se extrahera och publicera portabilitet för en alternativ metod som gör det möjligt för SqlPackage-egenskaper att hoppa över vissa objekt som inte stöds.

  2. Skapa din nya SQL-databas i Fabric som vanligt via Fabric-gränssnittet.

  3. Kopiera anslutningssträng från inställningarna.

    Skärmbild från Fabric-portalen som visar sidan Anslutningssträngar i SQL-databasen.

  4. Använd importkommandot från terminalen i mappen sqlpackage. Ange din ägare <servername> och <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"
    
    • Ersätt din anslutningssträng från dialogrutan FÖR SQL-databasinställningar.
    • Ersätt värdet sourcefile med .bacpac namnet (DatabaseName) och location på den lokala datorn.
  5. Följ importen med ett kopieringsjobb i Data Factory i Microsoft Fabric. Kom igång genom att läsa Snabbstart: Skapa ett kopieringsjobb.

Exportera en databas med SqlPackage

Exportera en .bacpac är den omvända åtgärden, där din targetfile är en .bacpac och du sourceconnectionstring kan hittas i dialogrutan SQL-databasinställningar, som i föregående exempel. Ange din ägare <servername> och <database_name>. Till exempel:

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"

Mer information om export finns i SqlPackage-export.

Extrahera och publicera

Diagram över hur SQL-databasprojekt kan flytta schemaändringar.

A .dacpac är en databasschemamodellfil som innehåller definitioner för tabellerna, lagrade procedurer och andra objekt i källdatabasen. Den här filen kan skapas från en befintlig databas med SqlPackage eller från ett SQL-databasprojekt.

SqlPackage kan distribuera en .dacpac till en ny (tom) databas eller stegvis uppdatera en befintlig databas för att matcha önskat .dacpac tillstånd.

  • Extrahera skapar en .dacpac eller sql-filer från en befintlig databas.
  • Publish distribuerar en .dacpac till en databas.

SqlPackage-publiceringssyntax och extraheringssyntax liknar import/export-kommandon.

Varning

Vi rekommenderar att du använder SqlPackage för att distribuera ett SQL-projekt eller .dacpac till SQL-databasen i Fabric. Det kan misslyckas att distribuera en .dacpac från Visual Studio.

Om du vill distribuera en .dacpac som har skapats från Azure SQL Database, SQL Server eller ett SQL-projekt som riktar sig mot en annan plattform än SQL-databas i Fabric lägger du till egenskapen /p:AllowIncompatiblePlatform=true till SqlPackage-publiceringskommandot.

Extrahera och publicera portabilitet

Medan SqlPackage-kommandona för import/export fokuserar på dataportabilitet med formatet .bacpac, kan extraherings- och publiceringskommandona möjliggöra dataportabilitet med formatet .dacpac. Extrahera och publicera egenskaper kan användas för att styra beteendet för extraherings- och publiceringsåtgärderna och ge mer flexibilitet för konverteringar mellan plattformar.

Om du vill extrahera data och inkludera den använder du .dacpac-egenskapen. Extraheringsåtgärden skapar en .dacpac som innehåller både schemat och data från källdatabasen. Egenskapen /p:ExtractReferencedServerScopedElements=false exkluderar serveromfattande element som inte stöds i SQL Database i Fabric. Följande kommando extraherar en .dacpac med data från en befintlig SQL-databas 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

Inga extra egenskaper krävs för att publicera en .dacpac som extraherades med hjälp av data. Flera egenskaper kan dock användas för att styra beteendet för publiceringsåtgärden:

  • /p:AllowIncompatiblePlatform=true tillåter distribution av en .dacpac som extraherades från en annan plattform (till exempel Azure SQL Database, SQL Server).
  • /p:ExcludeObjectTypes=Logins;Users exkluderar objekttyper som kan stöta på kompatibilitetsproblem vid publicering till SQL-databas i Fabric. En fullständig lista över objekttyper som kan undantas finns i Publicera i SqlPackage.

På samma sätt som sqlpackage-importkommandot måste du skapa databasen i Fabric innan du publicerar en .dacpac till SQL-databas i Fabric. Du kan skapa databasen via Fabric-portalen eller något annat infrastrukturgränssnitt. Följande kommando publicerar den extraherade .dacpac till en tom SQL-databas 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