Sdílet prostřednictvím


SqlPackage pro databázi SQL v Microsoft Fabric

Platí pro:SQL Database v Microsoft Fabric

V tomto kurzu se naučíte pracovat s SqlPackage ve vaší databázi SQL v prostředcích infrastruktury.

SqlPackage je rozhraní příkazového řádku poskytující přenositelnost databáze a nasazení databází.

  • Přenositelnost (import/export) databáze spravované v Azure nebo v prostředcích infrastruktury zajistí, že vaše data budou přenosná na jiné platformy, pokud budete chtít později migrovat. – Přenositelnost zahrnuje přesun do a z SQL Serveru, Azure SQL Database, Azure SQL Managed Instance a SQL databáze ve Fabric prostřednictvím samostatných kopií databáze (.bacpac soubory nebo .dacpac soubory).

SqlPackage také umožňuje snadné nasazení databází přírůstkových změn databázových objektů (nové sloupce v tabulkách, změny stávajících uložených procedur atd.).

  • SqlPackage může extrahovat .dacpac soubor obsahující definice objektů v databázi a publikovat .dacpac soubor, který použije tento stav objektu na novou nebo existující databázi.
  • Operace publikování se také integruje s projekty SQL, které umožňují offline a dynamičtější vývojové cykly pro databáze SQL.

Požadavky

Nastavení

SqlPackage je k dispozici pro Windows, macOS a Linux jako nástroj dotnet. Můžete ho nainstalovat pomocí následujícího příkazu:

dotnet tool install --global Microsoft.SqlPackage

Jako globální nástroj dotnet je SqlPackage dostupný v terminálu jako sqlpackage z libovolné složky.

Import databáze pomocí sqlPackage

A .bacpac je přenosná kopie databáze, užitečná pro některé scénáře migrace a testování. Můžete ho .bacpac do prázdné databáze SQL pomocí importu SqlPackage.

Poznámka:

.bacpac není záloha ani náhrada za funkce zálohování a obnovení. Další informace o zálohách pro databázi SQL v Microsoft Fabric najdete v tématu Automatické zálohování v databázi SQL v Microsoft Fabric a Obnovení ze zálohy v databázi SQL v Microsoft Fabric.

  1. Pokud používáte .bacpac z prostředí Azure nebo SQL Serveru, možná budete muset upravit zdrojovou databázi tak, aby splňovala požadavky SQL databáze v oblasti T-SQL pro Fabric. Viz extrakce a publikování přenositelnosti pro alternativní metodu, která umožňuje vlastnostem SqlPackage vynechat některé nepodporované objekty.

  2. Pomocí rozhraní Fabric vytvořte novou databázi SQL v prostředcích infrastruktury jako obvykle.

  3. Zkopírujte připojovací řetězec z nastavení.

    Snímek obrazovky z portálu Fabric zobrazující stránku Připojovací řetězce databáze SQL

  4. Použijte příkaz importu z terminálu ve složce sqlpackage. Zadejte svého vlastníka <servername> a <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"
    
    • Nahraďte připojovací řetězec v dialogovém okně nastavení databáze SQL.
    • sourcefile Nahraďte hodnotu .bacpac názvem (DatabaseName) a location na místním počítači.
  5. Postupujte podle importu s úlohou kopírování ve službě Data Factory v Microsoft Fabric. Pokud chcete začít, přečtěte si článek Rychlý start: Vytvoření úlohy kopírování.

Export databáze pomocí SqlPackage

Exportem .bacpac je zpětná operace, kde je targetfile vaše .bacpac hodnota a můžete sourceconnectionstring ji najít v dialogovém okně nastavení databáze SQL, jako v předchozím příkladu. Zadejte svého vlastníka <servername> a <database_name>. Příklad:

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"

Další informace o exportu naleznete v tématu SqlPackage export.

Extrakce a publikování

Diagram toho, jak můžou projekty databáze SQL přesouvat změny schématu

A .dacpac je soubor modelu schématu databáze, který obsahuje definice pro tabulky, uložené procedury a další objekty ve zdrojové databázi. Tento soubor lze vytvořit z existující databáze pomocí sqlPackage nebo z projektu databáze SQL.

SqlPackage dokáže nasadit novou (prázdnou .dacpac ) databázi nebo přírůstkově aktualizovat existující databázi tak, aby odpovídala požadovanému .dacpac stavu.

  • Extrahování vytvoří .dacpac nebo z existující databáze soubory SQL.
  • Publikování nasadí .dacpac databázi.

Syntaxe příkazů SqlPackage publish a extract je podobná příkazům importu a exportu.

Varování

Použití SqlPackage k nasazení projektu SQL nebo .dacpac do databáze SQL ve Fabric se doporučuje. Nasazení .dacpac ze sady Visual Studio může být neúspěšné.

Pokud chcete nasadit .dacpac, které bylo vytvořeno z databáze Azure SQL Database, SQL Serveru nebo z SQL projektu zaměřeného na jinou platformu než je SQL databáze v systému Fabric, připojte vlastnost /p:AllowIncompatiblePlatform=true k příkazu pro publikování SqlPackage.

Extrakce a publikování přenositelnosti

Příkazy importu a exportu SqlPackage se zaměřují na přenositelnost dat ve .bacpac formátu, ale příkazy pro extrakci a publikování jsou schopné přenositelnosti dat s formátem .dacpac . Vlastnosti extrakce a publikování lze použít k řízení chování operací extrakce a publikování a zajištění větší flexibility pro převody mezi platformami.

K extrakci.dacpac a zahrnutí dat použijte /p:ExtractAllTableData=true vlastnost. Operace extrakce vytvoří .dacpac, který obsahuje jak schéma, tak data ze zdrojové databáze. Tato vlastnost /p:ExtractReferencedServerScopedElements=false vylučuje elementy s rozsahem serveru, které nejsou podporovány v SQL databázi ve Fabric. Následující příkaz extrahuje .dacpac z existující databáze SQL v prostředí 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

K publikování položky, která byla extrahována spolu s daty, se nevyžadují žádné další vlastnosti. K řízení chování operace publikování je však možné použít několik vlastností:

  • /p:AllowIncompatiblePlatform=true umožňuje nasazení extrahovaného .dacpac z jiné platformy (například Azure SQL Database, SQL Server).
  • /p:ExcludeObjectTypes=Logins;Users vyloučí typy objektů, které mohou mít problémy s kompatibilitou při publikování do SQL databáze v prostředí Fabric. Úplný seznam typů objektů, které lze vyloučit, naleznete v tématu SqlPackage publish.

Podobně jako příkaz importu SqlPackage, před publikováním .dacpac do SQL databáze ve Fabricu je potřeba vytvořit tuto databázi ve Fabricu. Databázi můžete vytvořit prostřednictvím portálu Fabric nebo jiného rozhraní Fabric. Následující příkaz publikuje extrahovaný .dacpac do prázdné databáze SQL v platformě 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