Microsoft Fabric SQL データベースの SqlPackage
適用対象:✅ Microsoft Fabric SQL データベース
このチュートリアルでは、Fabric SQL データベースで SqlPackage を操作する方法について説明します。
SqlPackage は、"データベースの移植性" と "データベースのデプロイ" の機能を備える CLI です。
- Azure または Fabric で管理されるデータベースには移植性 (インポートまたはエクスポート) があるため、後で移行が必要になった場合でも、データを SQL Server や Azure SQL Managed Instance などの他のプラットフォームに確実に移植できます。
- 同じ移植性により、インポートまたはエクスポート操作を伴う自己包含データベース コピー (
.bacpac
) を使用した一部の移行シナリオも可能になります。
また、SqlPackage を使用すると、データベース オブジェクトへの増分変更 (テーブル内の新しい列、既存のストアド プロシージャへの変更など) を簡単にデータベースにデプロイできます。
- SqlPackage では、データベース内のオブジェクトの定義を含む
.dacpac
ファイルを抽出し、.dacpac
ファイルを発行して、そのオブジェクトの状態を新規または既存のデータベースに適用できます。 - この発行操作は、SQL プロジェクトとも統合されます。これにより、SQL データベースの開発サイクルがオフラインで可能になり、より動的になります。
前提条件
- 既存の Fabric 容量が必要です。 そうでない場合は、Fabric 試用版を開始します。
- Fabric テナント設定で SQL データベースが有効になっていることを確認してください。
- 新しいワークスペースを作成するか、既存の Fabric ワークスペースを使用します。
- Fabric で SQL データベースを作成するか、既存のものを使います。 まだない場合は、新しい Fabric SQL データベースを作成します。
- .NET 8 SDK をインストールします。
セットアップ
SqlPackage は、Windows、macOS、Linux で Dotnet ツールとして使用できます。 これは次のコマンドを使用してインストールできます。
dotnet tool install --global Microsoft.SqlPackage
SqlPackage はグローバルな Dotnet ツールなので、ターミナルで任意のフォルダーから sqlpackage
と入力して使用できます。
SqlPackage を使用してデータベースをインポートする
.bacpac
はデータベースの移植可能なコピーであり、一部の移行やテストのシナリオで役立ちます。 その .bacpac
を空の SQL データベースにインポートできます。
Note
.bacpac
はバックアップではなく、バックアップまたは復元機能に代わるものでもありません。 Fabric SQL データベースのバックアップの詳細については、Microsoft Fabric SQL データベースの自動バックアップと Microsoft Fabric SQL データベースのバックアップからの復元に関する記事を参照してください。
Azure SQL データベース環境の
.bacpac
を使用している場合は、必要に応じて Fabric SQL データベースの T-SQL 画面領域に合うようにソース データベースを変更します。通常どおり、Fabric インターフェイスを使用して、新しい Fabric SQL データベースを作成します。
設定から接続文字列をコピーします。
ターミナルから sqlpackage フォルダー内で import コマンドを使用します。 所有者の
<servername>
と<database_name>
を指定します。sqlpackage /action:import /sourcefile:"C:\DatabaseName.bacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.windows.net,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"
- SQL データベース設定ダイアログから接続文字列を置き換えます。
sourcefile
値をローカル コンピューター上の.bacpac
の名前 (DatabaseName
) とlocation
に置き換えます。
インポートの詳細については、「SqlPackage のインポート」を参照してください。
SqlPackage を使用してデータベースをエクスポートする
.bacpac
のエクスポートは逆の操作です。先ほどの例と同様に、targetfile
は .bacpac
であり、sourceconnectionstring
は SQL データベースの設定ダイアログで確認できます。 所有者の <servername>
と <database_name>
を指定します。 次に例を示します。
sqlpackage.exe /action:export /targetfile:"C:\DatabaseName.bacpac" /sourceconnectionstring:"Data Source=tcp:<server_name>.database.windows.net,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"
エクスポートの詳細については、「SqlPackage のエクスポート」を参照してください。
抽出と発行
.dacpac
はデータベース スキーマ モデル ファイルであり、ソース データベース内のテーブル、ストアド プロシージャ、その他のオブジェクトの定義が含まれています。
SqlPackage には、.dacpac
を新しい (空の) データベースにデプロイしたり、目的の .dacpac
状態に一致するように既存のデータベースを段階的に更新したりする機能があります。
- extract を使用すると、既存のデータベースから
.dacpac
または SQL ファイルを作成できます。 - publish を使用すると、
.dacpac
をデータベースにデプロイできます。
SqlPackage publish 構文は、import と export のコマンドと似ています。