Microsoft Fabric での SQL データベース ソース管理の統合
適用対象:✅Microsoft Fabric の SQL データベース
このチュートリアルでは、Fabric の Git 統合ソース管理を使って Fabric の SQL データベースを操作する方法について説明します。
Microsoft Fabric SQL Database にはソース管理の統合 ("Git 統合") が含まれており、SQL ユーザーはデータベース オブジェクトの定義を経時的に追跡できます。 この統合により、チームで以下を実現できます。
- データベースをソース管理にコミットします。これにより、ライブ データベースが、構成されたソース管理リポジトリ (Azure DevOps など) のコードに自動的に変換されます。
- ソース管理の内容からデータベース オブジェクトを更新します。これにより、データベースに差分変更を適用する前にソース管理リポジトリのコードを検証できます。
Git に慣れていない方のために、おすすめのリソースを次にいくつか示します。
この記事では、Fabric の SQL データベースを使った開発プロセスを管理するために個別で、または組み合わせて使用できる、一連の便利なシナリオについて説明します。
- Fabric SQL データベースをソース管理のコードに変換する
- ソース管理から Fabric SQL データベースを更新する
- ブランチ ワークスペースを作成する
- あるブランチから別のブランチに変更をマージする
前提条件
- 既存の Fabric 容量が必要です。 そうでない場合は、Fabric 試用版を開始します。
- Fabric テナント設定で SQL データベースが有効になっていることを確認してください。
- Git 統合テナント設定が有効になっていることを確認してください。
- 新しいワークスペースを作成するか、既存の Fabric ワークスペースを使います。
- Fabric で SQL データベースを作成するか、既存のものを使います。 まだない場合は、Fabric で新しい SQL データベースを作成します。
- 省略可能: Visual Studio Code、mssql 拡張機能、VS Code 用 SQL プロジェクト拡張機能をインストールします。
セットアップ
このリポジトリ接続はワークスペース レベルで適用され、リポジトリ内の 1 つのブランチがそのワークスペースに関連付けられます。 リポジトリは複数のブランチを持つことができますが、ワークスペースに直接影響を与えるのは、ワークスペース設定で選択されているブランチのコードのみです。
ワークスペースをソース管理リポジトリに接続する手順については、Git 統合の概要に関する記事を参照してください。 ワークスペースは、Azure DevOps または GitHub リモート リポジトリに接続できます。
ソース管理に Fabric SQL データベースを追加する
このシナリオでは、データベース オブジェクトをソース管理にコミットします。 アプリケーションを開発する際に、テスト データベース内に直接オブジェクトを作成して、アプリケーション コードと同様にソース管理でそのデータベースを追跡するという場合が考えられます。 その場合、データベース オブジェクトの定義の履歴にアクセスでき、ブランチやマージといった Git の概念を使って開発プロセスをさらにカスタマイズできます。
- Fabric SQL エディター、SQL Server Management Studio、Visual Studio Code の mssql 拡張機能、またはその他の外部ツールで、SQL データベースに接続します。
- データベースに新しいテーブル、ストアド プロシージャ、その他のオブジェクトを作成します。
- データベースの [
...
] メニューを選択し、[Git 同期状態を更新する] を選択します。 - [ソース管理] ボタンを選択して、ソース管理パネルを開きます。
- 目的のデータベースの横にあるチェックボックスをオンにします。 [コミット] を選択します。 Fabric サービスは、データベースからオブジェクト定義を読み取り、リモート リポジトリに書き込みます。
- これで、コード リポジトリのソース ビューでデータベース オブジェクトの "履歴" を表示できるようになりました。
既存のオブジェクトを編集するなど、データベースの編集を続ける場合は、前の手順に従ってそれらの変更をソース管理にコミットできます。
ソース管理から Fabric SQL データベースを更新する
このシナリオでは、VS Code の SQL プロジェクト拡張機能でコードとしてデータベース オブジェクトを作成し、そのファイルをソース管理にコミットした後、ソース管理の統合から Fabric SQL データベースを更新します。 このシナリオは、VS Code で作業したい、SQL プロジェクトを使う既存のアプリケーションがある、またはより高度な CI/CD パイプライン要件がある、という開発者を対象としています。
- VS Code の最新リリースと、VS Code 用の mssql および SQL プロジェクト拡張機能がインストールされていることを確認してください。
- ここでは VS Code の統合 Git ソース管理を使います。
- ワークスペースに新しい SQL データベースを作成し、オブジェクトを追加せずにソース管理にコミットします。 この手順では、空の SQL プロジェクトと SQL データベース項目のメタデータをリポジトリに追加します。
- ソース管理リポジトリをローカル コンピューターにクローンします。
- Azure DevOps を使用する場合は、ソース管理プロジェクトの
...
コンテキスト メニューを選択します。 [クローン] を選択して、ローカル コンピューターに Azure DevOps リポジトリをクローンします。 Azure DevOps を初めて使用する場合は、Azure DevOps 用の Git を使用したコードに関するガイドを参照してください。 - GitHub を使用する場合は、リポジトリの [Code] ボタンを選択し、URL をコピーしてリポジトリをローカル コンピューターにクローンします。 GitHub を初めて使用する場合は、リポジトリのクローンに関するガイドを参照してください。
- Azure DevOps を使用する場合は、ソース管理プロジェクトの
- Visual Studio Code でクローンしたフォルダーを開きます。 ワークスペースに関連付けられているブランチは、既定ではない可能性があります。 ブランチを切り替えると、VS Code に
<yourdatabase>.SQLDatabase
という名前のフォルダーが表示されるはずです。 - データベースのフォルダー構造内に、データベース内に作成したい少なくとも 1 つのテーブルの
.sql
ファイルを作成します。 そのファイルには、テーブルのCREATE TABLE
ステートメントが含まれている必要があります。 たとえば、以下の内容を含むMyTable.sql
という名前のファイルをdbo/Tables
フォルダーに作成します。CREATE TABLE dbo.MyTable ( Id INT PRIMARY KEY, ExampleColumn NVARCHAR(50) );
- 構文が有効であることを確認するために、SQL プロジェクトを使ってデータベース モデルを検証できます。 ファイルを追加したら、VS Code の [データベース プロジェクト] ビューを使ってプロジェクトを [ビルド] します。
- ビルドが正常に完了したら、VS Code のソース管理ビューか、お好みのローカル Git インターフェイスを使って、ファイルをソース管理に [コミット] します。
- コミットをリモート リポジトリにプッシュ/同期します。 新しいファイルが Azure DevOps または GitHub に表示されていることを確認します。
- Fabric Web インターフェイスに戻り、ワークスペースの [ソース管理] パネルを開きます。 "Git からの保留中の変更があります" というアラートが既に発生している場合があります。 [更新 (すべて更新)] ボタンを選択して、SQL プロジェクトのコードをデータベースに適用します。
- 更新後、データベースが "コミットされていない" ことがすぐに示される場合があります。 これは、Git 統合機能がある項目定義に対して生成されたすべてのファイル コンテンツを直接比較するため、意図しない違いが生じる可能性があるためです。 1 つの例は、列のインライン属性です。 このような場合は、Fabric Web インターフェイスでソース管理にコミットし直して、定義をコミット操作の一環として生成されたものと同期させる必要があります。
- 更新が完了したら、お好みのツールを使ってデータベースに接続します。 SQL プロジェクトに追加したオブジェクトがデータベースに表示されます。
Note
ローカル SQL プロジェクトに変更を加える際に、構文エラーや Fabric でサポートされていない機能の使用があった場合、そのデータベースの更新は失敗します。 ソース管理で手動で変更を元に戻してから続行する必要があります。
ブランチ ワークスペースを作成する
このシナリオでは、Fabric で新しい開発環境を設定します。そのために、Fabric で、ソース管理定義に基づいてリソースの重複するセットを作成します。 重複するデータベースには、ソース管理にチェックインしたデータベース オブジェクトが追加されます。 このシナリオは、Fabric でアプリケーション開発ライフサイクルを継続しており、Fabric からのソース管理統合を利用している開発者を対象としています。
- 「Fabric SQL データベースをソース管理のコードに変換する」のシナリオを完了してください。
- SQL プロジェクトと Fabric オブジェクトのメタデータの両方を含むソース管理リポジトリのブランチが必要です。
- Fabric ワークスペースで、ソース管理パネルを開きます。 [ソース管理] メニューの [ブランチ] タブで、[新しいワークスペースへの分岐] を選択します。
- 作成されるブランチとワークスペースの名前を指定します。 ブランチはソース管理リポジトリに作成され、分岐元のワークスペースに関連付けられているブランチのコミット済みの内容が設定されます。 Fabric にワークスペースが作成されます。
- Fabric の新しく作成されたワークスペースに移動します。 データベースの作成が完了すると、新しく作成されたデータベースには、コード リポジトリで指定されたオブジェクトが含まれています。 Fabric クエリ エディターを開き、[オブジェクト エクスプローラー] で移動すれば、データベースには新しい (空の) テーブルとその他のオブジェクトが含まれていることがわかります。
あるブランチから別のブランチに変更をマージする
このシナリオでは、ソース管理リポジトリを使ってデータベースの変更をレビューしてから、デプロイできるようにします。 このシナリオは、チーム環境で作業し、ソース管理を使ってデータベースの変更を管理している開発者を対象としています。
前のシナリオで説明したように、同じリポジトリに関連付けられたブランチを持つ 2 つのワークスペースを作成します。
- セカンダリ ブランチのデータベースを使って、データベース オブジェクトに変更を加えます。
- たとえば、既存のストアド プロシージャを変更したり、新しいテーブルを作成したりします。
- Fabric のソース管理パネルの [コミット] ボタンを使って、これらの変更をソース管理にチェックインします。
- Azure DevOps または GitHub で、セカンダリ ブランチからプライマリ ブランチへの pull request を作成します。
- pull request では、プライマリ ワークスペースとセカンダリ ワークスペース間でのデータベース コードの変更を確認できます。
- pull request を完了すると、ソース管理は更新されますが、プライマリ ワークスペースでの Fabric のデータベースは変更されません。 プライマリ データベースを変更するには、Fabric のソース管理パネルの [更新] ボタンを使って、ソース管理からプライマリ ワークスペースを更新します。