Azure SQL Database エミュレーターを使った開発環境
はじめに
Azure SQL Database を利用するアプリ開発で、ローカルの開発環境では SQL Serve を利用していますが、Azure SQL Database では利用できない構文や機能を使っていても、Azure SQL Database を利用した環境に載せるまで気付かないリスクが存在します。
しかし、ローカルの開発環境で Azure SQL Database エミュレーターを利用することで、このリスクをローカルでの動作確認時に検出できることを期待し、Azure SQL Database エミュレーターを使った開発環境を調べた際のメモとして残します。
なお、2022年9月時点の情報となりますので、最新情報については参考にある Microsoft Docs を確認願います。
概要
Azure SQL Database エミュレーターとは
- 開発およびテスト用のコンテナー化されたローカルのデータベース。
- Azure SQL Database の忠実度の高いエミュレーターを提供するコンテナー イメージと開発ツールの拡張機能を組み合わせたもの。
- Dockerコンテナで提供され、Visual Studio Code と Azure Data Studio から利用できる。
- Microsoft Container Registry からプルして利用する。
- ローカルまたはホストされている CI/CD パイプラインの一部として簡単に使用できる。
- Azure SQL Database にアクセスすることなく、単体テストと統合テストができる。
- 実装は、Azure SQL Edge 基本イメージから派生している。
制約
Azure SQL Database のすべての機能をサポートしていない。
ただし、今後のリリースで、サポートする機能を増やしていく予定。
制限事項
- 空間データ型
- インメモリ OLTP でのメモリ最適化テーブル
- HierarchyID データ型
- フルテキスト検索
- Azure Active Directory の統合
※詳細は Azure SQL Edge のサポートされていない機能を参照
Azure SQL Database のローカル開発環境の導入
OS
- Windows 10 以降
- macOS Mojave 以降
- Linux (できれば Ubuntu 18.04 以降)
開発ツール
ハードウェアの最小要件
- メモリ
- 8GBのRAM
- ディスク容量
- 10 GB
WIndows での環境設定
Docker Desktop をインストール
Docker Desktop for Windows を WSL2 でセットアップする。
※詳細は以下を参照
拡張機能をインストールする
Visual Studio Code
mssql 拡張機能をインストールする。
- Visual Studio Code でコマンドパレットを開く。
以下の何れかの方法- メニューバーから[表示] > [コマンドパレット]を選択
- Ctrl + Shift + P を押下
- F1 を押下
- コマンド パレットで、ドロップダウンから [拡張機能: 拡張機能のインストール] を選択する。
- [拡張機能]ペインで、「mssql」と入力する。
- SQL Server (mssql) 拡張機能を選択し、[インストール]を選択する。
- インストールが完了したら、[リロード]を選択して拡張機能を有効にする。
Azure Data Studio
SQL Database Projects 拡張機能 (プレビュー)をインストールする。
- Azure Data Studio でコマンドパレットを開く。
以下の何れかの方法- メニューバーから[View] > [Command Palette]を選択
- Ctrl + Shift + P を押下
- F1 を押下
- コマンド パレットで、ドロップダウンから [Extensions: Install Extensions] を選択します。
- [拡張機能]ペインで、「SQL Database Projects」と入力する。
- SQL Database Projects 拡張機能を選択し、 [Install]を選択する。
- インストールが完了したら、[Reload]を選択して拡張機能を有効にする。
利用方法
- 空のデータベース プロジェクトを作成するか、既存のプロジェクトを開いて利用する。
- また、OpenAPI/Swagger 仕様から開始することも可能
- コマンド パレットの [Generate SQL Project from OpenAPI/Swagger spec] コマンドを使用
※詳細は以下を参照
参考
- Azure SQL Database のローカル開発エクスペリエンスとは
- Azure SQL Database エミュレーターの概要 (プレビュー)
- サポートされていない機能 - Azure SQL Edge でサポートされる機能
- クイックスタート: Azure SQL Database のローカル開発環境を作成する
- Set up a local development environment for Azure SQL Database
- Create a project for a local Azure SQL Database development environment
- Publish a Database Project for Azure SQL Database to the local emulator