Sdílet prostřednictvím


Rozbalení souboru DACPAC

Aplikace datové vrstvy (DAC) je samostatná jednotka celého databázového modelu a je přenosná v artefaktu známém jako balíček DAC nebo .dacpac. Před nasazením v produkčním prostředí je vhodné zkontrolovat obsah .dacpac a validovat akce upgradu dříve než bude upgradován existující DAC. Ověření obsahu .dacpac je zvlášť důležité při nasazování balíčků, které nebyly vyvinuty ve vaší organizaci. Tento článek popisuje několik způsobů, jak rozbalit model databáze z .dacpac pro Windows, macOS a Linux.

Varování

Doporučujeme, abyste nenasazovali .dacpac z neznámých nebo nedůvěryhodných zdrojů. Takové řadiče DAC můžou obsahovat škodlivý kód, který by mohl spouštět nezamýšlený kód nebo způsobovat chyby úpravou schématu. Než použijete daC z neznámého nebo nedůvěryhodného zdroje, nasaďte ho do izolované testovací instance databázového stroje, rozbalte daC a prozkoumejte kód, například uložené procedury nebo jiný uživatelem definovaný kód.

Mezi možnosti zkoumání obsahu .dacpac patří:

  • import .dacpac do projektu SQL v sadě Visual Studio
  • Pomocí nástroje příkazového řádku SqlPackage extrahujte .dacpac
  • dekomprimace souboru pro zobrazení obsahu XML
  • nasazení .dacpac do testovací instance

Rozbalení .dacpac ihned po jeho extrahování z databáze k zobrazení definic objektů je efektivnější pomocí Extrahovat v SqlPackage s vlastností /p:ExtractTarget=File. Výsledek přímo vytvoří jeden .sql soubor, který obsahuje definice objektů ze zadané zdrojové databáze.

Přeneste DACPAC do projektu SQL v sadě Visual Studio

Import .dacpac do projektu SQL v sadě Visual Studio způsobí, že obsah .dacpac se transformuje na .sql soubory, které jsou uspořádané do složek. Po importu jsou skripty po nasazení a skripty předběžného nasazení z .dacpac viditelné v Průzkumníku řešení.

  1. Nainstalujte SQL Server Data Tools jako součást sady Visual Studio a vytvořte nový projekt SQL.

  2. V Průzkumníku řešení klikněte pravým tlačítkem na prázdný projekt a vyberte Importa pak z balíčku aplikací datové úrovně.

Dekomprese DACPAC pro zobrazení obsahu XML

Dekomprese .dacpac souboru způsobí, že je k dispozici nezpracovaný obsah XML pro prohlížení v textovém editoru. Když hledáte konkrétní komponentu v rámci .dacpac, kontrola obsahu XML může být rychlá metoda pro přístup k informacím.

  1. Změňte příponu souboru .dacpac na .zip.

  2. Rozbalte soubor .zip pomocí nástroje poskytovaného vaším operačním systémem. Rozbalení souboru z příkazového řádku:

    unzip AdventureWorks.dacpac
    
  3. Výsledný obsah zahrnuje DacMetadata.xml, Origin.xmla model.xml.

Nasazení DACPAC do testovací instance

Nasazení .dacpac do testovací instance způsobí, že obsah .dacpac je publikován do databáze, kde lze objekty procházet z různých připojených databázových nástrojů.

Poznámka

Jednou z možností pro místní vytvoření testovací instance je SQL Server v Dockeru.

Nasazení DACPAC pomocí nástroje Azure Data Studio

  1. Nainstalujte rozšíření SQL Server dacpac v Azure Data Studio.

  2. Připojte se k požadované instanci. Klikněte pravým tlačítkem na uzel serveru a v nabídce vyberte Průvodce aplikací datové vrstvy.

  3. V průvodci vyberte možnost nasadit a nastavte možnost Cílová databáze na Nová databáze.

  4. Po nasazení přejděte do databáze na připojeném serveru v Průzkumníku objektů a procházejte databázové objekty.

Nasazení DACPAC pomocí sqlPackage

  1. Nainstalujte SqlPackage.

  2. Pomocí rozhraní příkazového řádku SqlPackage publikujte soubor .dacpac do požadované instance. Příklady příkazů pro publikování .dacpac do databáze najdete v tématu Příklady publikování SqlPackage.

Další nástroje s možnostmi nasazení DACPAC

Kromě Azure Data Studia a SqlPackage je možné k nasazení .dacpac do databáze použít mnoho dalších nástrojů. Mezi příklady patří:

  • SQL Server Management Studio
  • Visual Studio: Nástroje pro data SQL Serveru

Vyvolání metody Unpack()

Rozhraní Microsoft.SqlServer.DacFx .NET API poskytuje metodu k rozbalení.dacpac do složky, kterou lze použít k programatickému rozbalení .dacpac do složky. Následující příklad aplikace .NET přebírá dva argumenty, cestu k souboru .dacpac a cestu k výstupní složce a výsledek je obsah .dacpac převeden na 3 xml soubory a jeden .sql soubor, který obsahuje všechny databázové objekty.

using Microsoft.SqlServer.Dac;

namespace DacUnpack
{
    class Program
    {
        static void Main(string[] args)
        {
            var dacpacPath = args[0];
            var outputPath = args[1];

            if (!Directory.Exists(outputPath))
            {
                Directory.CreateDirectory(outputPath);
            }

            Console.WriteLine("Unpacking {0} to {1}", dacpacPath, outputPath);
            using(DacPackage dacpac = DacPackage.Load(dacpacPath))
            {
                dacpac.Unpack(outputPath);
            }
        }
    }
}