Yugabyte - ebean-test support via ebean.test.platform=yugabyte

This commit is contained in:
Rob Bygrave committed 2022-02-01 13:26:05 +13:00
1 parent 530a75b591
commit 6d0f5aea82
3 files changed
+53 -5

No files matched your search

@@ -35,18 +35,14 @@ public class PlatformAutoConfig {
KNOWN_PLATFORMS.put("cockroach", new CockroachSetup());
KNOWN_PLATFORMS.put("hana", new HanaSetup());
KNOWN_PLATFORMS.put("db2", new Db2Setup());
KNOWN_PLATFORMS.put("yugabyte", new YugabyteSetup());
}
private final DatabaseConfig config;
private final Properties properties;
private String db;
private String platform;
private PlatformSetup platformSetup;
private String databaseName;
public PlatformAutoConfig(String db, DatabaseConfig config) {
@@ -0,0 +1,49 @@
package io.ebean.test.config.platform;
import java.util.Properties;
class YugabyteSetup implements PlatformSetup {
@Override
public Properties setup(Config config) {
int defaultPort = config.isUseDocker() ? 6433 : 5433;
config.ddlMode("dropCreate");
config.setDefaultPort(defaultPort);
config.setUsernameDefault();
config.setPasswordDefault();
config.setUrl("jdbc:postgresql://${host}:${port}/${databaseName}");
String schema = config.getSchema();
if (schema != null && !schema.equals(config.getUsername())) {
config.urlAppend("?currentSchema=" + schema);
}
config.setDriver("org.postgresql.Driver");
config.datasourceDefaults();
return dockerProperties(config);
}
private Properties dockerProperties(Config config) {
if (!config.isUseDocker()) {
return new Properties();
}
config.setDockerVersion("2.11.2.0-b89");
config.setExtensions("pgcrypto");
return config.getDockerProperties();
}
@Override
public void setupExtraDbDataSource(Config config) {
int defaultPort = config.isUseDocker() ? 6433 : 5433;
config.setDefaultPort(defaultPort);
config.setExtraUsernameDefault();
config.setExtraDbPasswordDefault();
config.setUrl("jdbc:postgresql://${host}:${port}/${databaseName}");
config.setDriver("org.postgresql.Driver");
config.extraDatasourceDefaults();
}
@Override
public boolean isLocal() {
return false;
}
}
@@ -0,0 +1,3 @@
ebean.test.platform=yugabyte
datasource.default=yugabyte
ebean.test.dbName=unit