#1147 - Refactor move DbMigration internals into io.ebeaninternal - change to use DbMigration.create() - move PlatformDdl into internal

This commit is contained in:
rob bygrave
2017-10-04 20:30:57 +13:00
parent c6fc7a032d
commit 62707caf64
24 changed files with 122 additions and 90 deletions
@@ -53,6 +53,7 @@ import io.ebean.text.csv.CsvReader;
import io.ebean.text.json.JsonContext;
import io.ebeaninternal.api.*;
import io.ebeaninternal.api.SpiQuery.Type;
import io.ebeaninternal.dbmigration.ddlgeneration.DdlHandler;
import io.ebeaninternal.server.autotune.AutoTuneService;
import io.ebeaninternal.server.core.timezone.DataTimeZone;
import io.ebeaninternal.server.deploy.BeanDescriptor;
@@ -329,6 +330,11 @@ public final class DefaultServer implements SpiServer, SpiEbeanServer {
return databasePlatform;
}
@Override
public DdlHandler createDdlHandler() {
return PlatformDdlBuilder.create(databasePlatform).createDdlHandler(serverConfig);
}
@Override
public DataTimeZone getDataTimeZone() {
return dataTimeZone;
@@ -0,0 +1,44 @@
package io.ebeaninternal.server.core;
import io.ebean.config.dbplatform.DatabasePlatform;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.DB2Ddl;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.H2Ddl;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.HsqldbDdl;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.MySqlDdl;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.Oracle10Ddl;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.PostgresDdl;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.SQLiteDdl;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.SqlServerDdl;
public class PlatformDdlBuilder {
public static PlatformDdl create(DatabasePlatform platform) {
switch (platform.getPlatform()) {
case H2:
return new H2Ddl(platform);
case DB2:
return new DB2Ddl(platform);
case MYSQL:
return new MySqlDdl(platform);
case HSQLDB:
return new HsqldbDdl(platform);
case ORACLE:
return new Oracle10Ddl(platform);
case SQLITE:
return new SQLiteDdl(platform);
case GENERIC:
return new PlatformDdl(platform);
case POSTGRES:
return new PostgresDdl(platform);
case SQLSERVER:
return new SqlServerDdl(platform);
case SQLANYWHERE:
return new PlatformDdl(platform);
default:
return new PlatformDdl(platform);
}
}
}