M1 MacBookを使って、Azure SQL Databaseを動かす方法

こんばんは、エキサイト株式会社の中尾です。

今回は、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

github.com

JDBCは公式のmssql-jdbcを使いましょう。使いたいバージョンに合わせてください。

docs.microsoft.com

ほとんどの場合はこれで問題ないと思います。

Flywayを使う場合は7系以上を使います。6系はバージョンが古いと怒られます。

flywaydb.org

私が挙動を確認したのは7.9.1です。

M1 MacBookが出てからFlywayの調整、Azure SQL Serverが動かないなどあれば、基本的には

  • Azure SQL Edge を使う
  • Flywayのバージョンを上げる

で対応できると思います。 Windowsログインなど細かい調整はFlywayの公式ドキュメントを読んでください。