DAC パッケージのアンパック
DAC は、データベース モデル全体の自己完結型ユニットであり、DAC パッケージ (.dacpac)と呼ばれるアーティファクトに移植可能です。 この記事では、Windows、macOS、Linux 用の .dacpac からデータベース モデルをアンパックするいくつかの方法について説明します。
警告
ソースが不明または信頼されていない DAC パッケージは配置しないことをお勧めします。 こうした DAC には、意図しない コードを実行したり、スキーマを変更してエラーを発生させるような、悪意のあるコードが含まれている可能性があります。 DAC のソースが不明または信頼されていない場合は、使用する前に、データベース エンジンの隔離されたテスト インスタンスに DAC をデプロイし、DAC をアンパックして、ストアド プロシージャやその他のユーザー定義コードなどのコードを確認してください。
dacpac の内容を調べるオプションは次のとおりです。
- Visual Studio で .dacpac を SQL プロジェクトにインポートする
- ファイルを展開して XML コンテンツを表示する
- .dacpac をテスト インスタンスにデプロイする
Unpack()
Microsoft.SqlServer.DacFx .NET API からメソッドを呼び出す
Visual Studio で .dacpac を SQL プロジェクトにインポートする
Visual Studio で .dacpac を SQL プロジェクトにインポートすると、.dacpac の内容が .sql ファイルに変換され、フォルダーに編成されます。 インポート後、.dacpac からの配置後スクリプトと配置前スクリプトがソリューション エクスプローラーに表示されます。
Visual Studio の一部として SQL Server Data Tools をインストールし、新しい SQL プロジェクトを作成します。
ソリューション エクスプローラーで空のプロジェクトを右クリックし、コンテキスト メニューの [インポート] を選択し、[データ層アプリケーション] からインポートを選択します。
.dacpac を展開して XML コンテンツを表示する
.dacpac ファイルを展開すると、生の XML コンテンツがテキスト エディターで表示できるようになります。 .dacpac 内の特定のコンポーネントを探す場合、これはコンテンツにアクセスするための簡単な方法です。
.dacpac ファイルのファイル拡張子を
.zip
に変更します。OS によって提供されるユーティリティを使用して、.zip ファイルを解凍します。 コマンド ラインからファイルを解凍するには:
unzip AdventureWorks.dacpac
結果の内容には
DacMetadata.xml
、Origin.xml
、およびmodel.xml
が含まれます。
.dacpac をテスト インスタンスにデプロイする
.dacpac をテスト インスタンスにデプロイすると、.dacpac の内容がデータベースに発行され、接続されているさまざまなデータベース ツールからオブジェクトを参照できるようになります。
注意
テスト インスタンスをローカルで作成するオプションの 1 つは、Docker の SQL Server を使用 することです。
Azure Data Studio を使用して .dacpac をデプロイする
SQL Server dacpac の拡張機能 を Azure Data Studio にインストールする。
目的のインスタンスに接続します。 サーバー ノードを右クリックし、メニューから [データ層アプリケーション ウィザード] を選択します。
ウィザードからデプロイ オプションを選択し、[ターゲット データベース] オプションを [新しいデータベース] に設定します。
デプロイ後、オブジェクト エクスプローラーで接続されているサーバー上のデータベースに移動し、データベース オブジェクトを参照します。
SqlPackage を使用して .dacpac をデプロイする
SqlPackage をインストールする。
SqlPackage CLI を使用して、.dacpac ファイルを目的のインスタンスに発行します。 .dacpac をデータベースに発行するコマンドの例については、SqlPackage の発行の例 を参照してください。
.dacpac デプロイ機能を備えたその他のツール
Azure Data Studio や SqlPackage 以外にも、.dacpac をデータベースにデプロイするために他の多くのツールを使用できます。 次に、それらの例の一部を示します。
- SQL Server Management Studio
- Visual Studio: SQL Server Data Tools
- [PowerShell
Unpack()
メソッドを呼び出します
Microsoft.SqlServer.DacFx .NET API には、.dacpac をフォルダーに アンパックするメソッド が用意されています。これを使用して、.dacpac をプログラムでフォルダーにアンパックできます。 次の例の .NET アプリケーションでは、.dacpac ファイルへのパスと出力フォルダーへのパスという 2 つの引数を受け取ります。結果は、3 つの XML ファイルにアンパックされる .dacpac の内容と、すべてのデータベース オブジェクトを含む単一の .sql ファイルです。
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);
}
}
}
}
参照
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示