Check the Unicode setup of the database on startup

Closes #46557

Signed-off-by: Pedro Ruivo <1492066+pruivo@users.noreply.github.com>
Signed-off-by: Alexander Schwartz <alexander.schwartz@ibm.com>
Co-authored-by: Pedro Ruivo <1492066+pruivo@users.noreply.github.com>
Co-authored-by: Alexander Schwartz <alexander.schwartz@ibm.com>
This commit is contained in:
Pedro Ruivo
2026-03-01 13:15:44 +00:00
committed by GitHub
parent c47c38577b
commit 33ff9f1b71
9 changed files with 126 additions and 55 deletions
@@ -4,7 +4,7 @@ import org.keycloak.testframework.util.ContainerImages;
import org.jboss.logging.Logger;
import org.testcontainers.containers.JdbcDatabaseContainer;
import org.testcontainers.containers.MariaDBContainer;
import org.testcontainers.mariadb.MariaDBContainer;
import org.testcontainers.utility.DockerImageName;
class MariaDBTestDatabase extends AbstractContainerTestDatabase {
@@ -15,7 +15,7 @@ class MariaDBTestDatabase extends AbstractContainerTestDatabase {
@Override
public JdbcDatabaseContainer<?> createContainer() {
return new MariaDBContainer<>(DockerImageName.parse(ContainerImages.getContainerImageName(NAME)).asCompatibleSubstituteFor(NAME)).withCommand("--character-set-server=utf8 --collation-server=utf8_unicode_ci");
return new MariaDBContainer(DockerImageName.parse(ContainerImages.getContainerImageName(NAME)).asCompatibleSubstituteFor(NAME));
}
@Override
@@ -63,7 +63,7 @@ class MSSQLServerTestDatabase extends AbstractContainerTestDatabase {
@Override
public List<String> getPostStartCommand() {
return List.of("/opt/mssql-tools18/bin/sqlcmd", "-U", "sa", "-P", getPassword(), "-No", "-Q", "CREATE DATABASE " + getDatabase() + "; " +
return List.of("/opt/mssql-tools18/bin/sqlcmd", "-U", "sa", "-P", getPassword(), "-No", "-Q", "CREATE DATABASE " + getDatabase() + " COLLATE Latin1_General_100_CI_AS_SC_UTF8; " +
// READ_COMMITTED_SNAPSHOT is recommended for MSSQL to avoid deadlocks
"ALTER DATABASE " + getDatabase() + " SET READ_COMMITTED_SNAPSHOT ON;");
}