SQL Server
SQL Serverではsqlserver17を使用するか、既定の古いものを使用するかを決定する必要があります。
sqlserver17
sqlserver17を使用するように設定するには、ebean.databasePlatformName>レベルまたはebean.test.sqlserver.databasePlatformName>レベルでdatabasePlatformNameをsqlserver17に設定する必要があります。
ebean:
databasePlatformName: sqlserver17 ## only using sql server
test:
platform: sqlserver # h2, postgres, mysql, oracle, sqlserver
ddlMode: dropCreate # none | dropCreate | migrations
dbName: test
sqlserver:
#collation: SQL_Latin1_General_CP1_CS_AS ## use an explicit collation
#collation: default ## use the sql server default
複数のデータベースプラットフォームに対してテストを行う場合は、次のような例に従って、sqlserverの下にdatabasePlatformName: sqlserver17を配置します。
ebean:
test:
platform: sqlserver # h2, postgres, mysql, oracle, sqlserver
ddlMode: dropCreate # none | dropCreate | migrations | create
dbName: test
sqlserver:
databasePlatformName: sqlserver17 ## put here when testing multiple platforms
#collation: SQL_Latin1_General_CP1_CS_AS ## use an explicit collation
#collation: default ## use the sql server default
上記では、次の既定値が使用されます。
| ユーザー名 | {databaseName} |
|---|---|
| パスワード | SqlS3rv#r |
| ポート | 1433 |
| URL | jdbc:sqlserver://:{port};databaseName={databaseName} |
| ドライバ | com.microsoft.sqlserver.jdbc.SQLServerDriver |
| イメージ | microsoft/mssql-server-linux:{version} |
ebean-sqlserverの依存関係
SqlServerに固有のプラットフォームコードのみを取り込む場合には、io.ebean:ebeanではなく、io.ebean:ebean-sqlserverの依存関係を使用できます。io.ebean:ebeanに依存すると、すべてのプラットフォームが取り込まれます。
Dockerコンテナ
DockerコンテナバージョンのSqlServerをプログラムで開始できます。
以下では、ebean-testにすでに付属しているebean-test-dockerの依存関係を使用しています。ebean-testに依存していない場合は、io.ebean:ebean-test-docker:5.0を依存関係として追加します。
package main;
import io.ebean.docker.commands.SqlServerContainer;
public class Main {
public static void main(String[] args) {
SqlServerContainer container = SqlServerContainer.newBuilder("2019-CU15-ubuntu-20.04")
.dbName("my_app")
.collation("SQL_Latin1_General_CP1_CS_AS")
// .containerName("ut_sqlserver")
// .port(1433)
.build();
container.start();
}
}