From 83cf768369d224d3e6396322f1a832fe3047b3d5 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Mon, 26 Feb 2018 23:09:44 +0100 Subject: [PATCH] Append preconfigured database to dbMigration (#1291) --- src/main/java/io/ebean/dbmigration/DbMigration.java | 8 ++++++++ .../io/ebeaninternal/dbmigration/DefaultDbMigration.java | 5 +++++ .../dbmigration/DbMigrationGenerateTest.java | 9 ++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/ebean/dbmigration/DbMigration.java b/src/main/java/io/ebean/dbmigration/DbMigration.java index eaa0dee3b..cd9c122a0 100644 --- a/src/main/java/io/ebean/dbmigration/DbMigration.java +++ b/src/main/java/io/ebean/dbmigration/DbMigration.java @@ -102,6 +102,14 @@ public interface DbMigration { */ void addPlatform(Platform platform, String prefix); + /** + * Add an additional databasePlatform to write the migration DDL. + *

+ * Use this when you want to add preconfigured database platforms. + *

+ */ + void addDatabasePlatform(DatabasePlatform databasePlatform, String prefix); + /** * Generate the next migration xml file and associated apply and rollback sql scripts. *

diff --git a/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java b/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java index a8d4877c9..9bf36c631 100644 --- a/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java +++ b/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java @@ -183,6 +183,11 @@ public class DefaultDbMigration implements DbMigration { platforms.add(new Pair(getPlatform(platform), prefix)); } + @Override + public void addDatabasePlatform(DatabasePlatform databasePlatform, String prefix) { + platforms.add(new Pair(databasePlatform, prefix)); + } + /** * Generate the next migration xml file and associated apply and rollback sql scripts. *

diff --git a/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java b/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java index 6ea8a19e3..6d16f0d1c 100644 --- a/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java +++ b/src/test/java/io/ebeaninternal/dbmigration/DbMigrationGenerateTest.java @@ -4,6 +4,9 @@ import io.ebean.EbeanServer; import io.ebean.EbeanServerFactory; import io.ebean.annotation.Platform; import io.ebean.config.ServerConfig; +import io.ebean.config.dbplatform.DatabasePlatform; +import io.ebean.config.dbplatform.IdType; +import io.ebean.config.dbplatform.sqlserver.SqlServerPlatform; import org.junit.*; import org.slf4j.Logger; @@ -52,7 +55,11 @@ public class DbMigrationGenerateTest { migration.addPlatform(Platform.POSTGRES, "postgres"); migration.addPlatform(Platform.ORACLE, "oracle"); migration.addPlatform(Platform.SQLITE, "sqlite"); - migration.addPlatform(Platform.SQLSERVER, "sqlserver"); + + // we need sequence here, so that migration will work properly + DatabasePlatform sqlServer = new SqlServerPlatform(); + sqlServer.getDbIdentity().setIdType(IdType.SEQUENCE); + migration.addDatabasePlatform(sqlServer, "sqlserver"); ServerConfig config = new ServerConfig(); config.setName("migrationtest");