次の方法で共有


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 データベースの開発サイクルがオフラインで可能になり、より動的になります。

前提条件

セットアップ

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 データベースのバックアップからの復元に関する記事を参照してください。

  1. Azure SQL データベース環境の .bacpac を使用している場合は、必要に応じて Fabric SQL データベースの T-SQL 画面領域に合うようにソース データベースを変更します。

  2. 通常どおり、Fabric インターフェイスを使用して、新しい Fabric SQL データベースを作成します

  3. 設定から接続文字列をコピーします。

    SQL データベースの [接続文字列] ページを示す Fabric ポータルのスクリーンショット。

  4. ターミナルから 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 のエクスポート」を参照してください。

抽出と発行

SQL データベース プロジェクトでスキーマ変更を移動する方法を示すダイアグラム。

.dacpac はデータベース スキーマ モデル ファイルであり、ソース データベース内のテーブル、ストアド プロシージャ、その他のオブジェクトの定義が含まれています。

SqlPackage には、.dacpac を新しい (空の) データベースにデプロイしたり、目的の .dacpac 状態に一致するように既存のデータベースを段階的に更新したりする機能があります。

  • extract を使用すると、既存のデータベースから .dacpac または SQL ファイルを作成できます。
  • publish を使用すると、.dacpac をデータベースにデプロイできます。

SqlPackage publish 構文は、import と export のコマンドと似ています。