SQL Server
With SQL Server we have to decide if we are going to use the sqlserver17 or the default older one.
sqlserver17
To setup to use sqlserver17 we should set the databasePlatformName to sqlserver17 at either the
ebean.databasePlatformName> level or at ebean.test.sqlserver.databasePlatformName> level.
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
When testing against multiple database platforms put databasePlatformName: sqlserver17
under sqlserver like the example below:
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
The above will use the following defaults:
| username: | {databaseName} |
|---|---|
| password: | SqlS3rv#r |
| port: | 1433 |
| url: | jdbc:sqlserver://localhost:{port};databaseName={databaseName} |
| driver: | com.microsoft.sqlserver.jdbc.SQLServerDriver |
| image: | microsoft/mssql-server-linux:{version} |
ebean-sqlserver dependency
We can use the io.ebean:ebean-sqlserver dependency rather than io.ebean:ebean if we want to only
bring in the SqlServer specific platform code. Depending on io.ebean:ebean will bring in all platforms.
Docker container
We can programmatically start a docker container version of SqlServer.
The below uses ebean-test-docker dependency which already comes with ebean-test.
If we do not have a dependency on ebean-test then add io.ebean:ebean-test-docker:5.0
as a dependency.
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();
}
}