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í.
Nainstalujte SQL Server Data Tools jako součást sady Visual Studio a vytvořte nový projekt SQL.
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.
Změňte příponu souboru
.dacpac
na.zip
.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
Výsledný obsah zahrnuje
DacMetadata.xml
,Origin.xml
amodel.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
Nainstalujte rozšíření SQL Server dacpac v Azure Data Studio.
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.
V průvodci vyberte možnost nasadit a nastavte možnost Cílová databáze na Nová databáze.
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
Nainstalujte SqlPackage.
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);
}
}
}
}