こんばんは、エキサイト株式会社の中尾です。
今回は、M1 MacBookを使って、Azure SQL Databaseを動かす方法を説明します。
まず、前提条件として、M1 MacBookでAzure SQL Serverのdocker image( mcr.microsoft.com/mssql/server
)は使えません。よって、Azure SQL Edgeのdocker imageを使います。Azure SQL EdgeはAzure SQL Serverと互換性がほぼあります。(もし
SQL Server独自の機能を使っているとかであれば、もしかしたら使えないかもしれません。CRUD操作がメインは問題ないでしょう。
私が使ったdocker imageは mcr.microsoft.com/azure-sql-edge:1.0.6
です。
ローカルDBにデータを永続化する場合は/var/opt/mssqlごとローカルにマウントしてください。
以下はdocker-compose.yamlの例です。
volumes: - "sqlserver-data:/var/opt/mssql" volumes: sqlserver-data: driver: local
JDBCは公式のmssql-jdbcを使いましょう。使いたいバージョンに合わせてください。
ほとんどの場合はこれで問題ないと思います。
Flywayを使う場合は7系以上を使います。6系はバージョンが古いと怒られます。
私が挙動を確認したのは7.9.1です。
M1 MacBookが出てからFlywayの調整、Azure SQL Serverが動かないなどあれば、基本的には
- Azure SQL Edge を使う
- Flywayのバージョンを上げる
で対応できると思います。 Windowsログインなど細かい調整はFlywayの公式ドキュメントを読んでください。