From 69c045443c2dbb40e226f8eef0dc725bbd8bb423 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 23 Nov 2017 19:05:35 +1300 Subject: [PATCH] #1218 - ENH: Bump to migration 11.2.1 with support for options patchInsertOn and patchResetChecksumOn --- pom.xml | 2 +- .../io/ebean/config/DbMigrationConfig.java | 56 ++++++++++++++++++- .../ebean/config/DbMigrationConfigTest.java | 4 ++ 3 files changed, 60 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index f9c8cca03..04ffadca0 100644 --- a/pom.xml +++ b/pom.xml @@ -122,7 +122,7 @@ io.ebean ebean-migration - 11.1.1 + 11.2.1 diff --git a/src/main/java/io/ebean/config/DbMigrationConfig.java b/src/main/java/io/ebean/config/DbMigrationConfig.java index dc843a01c..9f18d5dec 100644 --- a/src/main/java/io/ebean/config/DbMigrationConfig.java +++ b/src/main/java/io/ebean/config/DbMigrationConfig.java @@ -16,6 +16,8 @@ public class DbMigrationConfig { protected static final Logger logger = LoggerFactory.getLogger(DbMigrationConfig.class); + protected MigrationConfig runnerConfig = new MigrationConfig(); + /** * The database platform to generate migration DDL for. */ @@ -105,6 +107,10 @@ public class DbMigrationConfig { */ protected String dbPassword; + protected String patchInsertOn; + + protected String patchResetChecksumOn; + /** * Return the DB platform to generate migration DDL for. *

@@ -352,6 +358,47 @@ public class DbMigrationConfig { this.dbPassword = dbPassword; } + /** + * Return migration versions that should be added to history without running. + */ + public String getPatchInsertOn() { + return patchInsertOn; + } + + /** + * Set migration versions that should be added to history without running. + *

+ * Value can be a string containing comma delimited list of version numbers. + *

+ */ + public void setPatchInsertOn(String patchInsertOn) { + this.patchInsertOn = patchInsertOn; + } + + /** + * Return migration versions that should have their checksum reset and not run. + */ + public String getPatchResetChecksumOn() { + return patchResetChecksumOn; + } + + /** + * Set migration versions that should have their checksum reset and not run. + *

+ * Value can be a string containing comma delimited list of version numbers. + *

+ */ + public void setPatchResetChecksumOn(String patchResetChecksumOn) { + this.patchResetChecksumOn = patchResetChecksumOn; + } + + /** + * Return the underlying migration runner configuration allowing for more advanced settings. + */ + public MigrationConfig getRunnerConfig() { + return runnerConfig; + } + /** * Load the settings from the PropertiesWrapper. */ @@ -370,6 +417,8 @@ public class DbMigrationConfig { generate = properties.getBoolean("migration.generate", generate); version = properties.get("migration.version", version); name = properties.get("migration.name", name); + patchInsertOn = properties.get("migration.patchInsertOn", patchInsertOn); + patchResetChecksumOn = properties.get("migration.patchResetChecksumOn", patchResetChecksumOn); runMigration = properties.getBoolean("migration.run", runMigration); metaTable = properties.get("migration.metaTable", metaTable); @@ -446,7 +495,6 @@ public class DbMigrationConfig { */ public MigrationRunner createRunner(ClassLoader classLoader, Properties properties) { - MigrationConfig runnerConfig = new MigrationConfig(); runnerConfig.setMetaTable(metaTable); runnerConfig.setApplySuffix(applySuffix); runnerConfig.setMigrationPath(migrationPath); @@ -455,6 +503,12 @@ public class DbMigrationConfig { runnerConfig.setDbUsername(getDbUsername()); runnerConfig.setDbPassword(getDbPassword()); runnerConfig.setClassLoader(classLoader); + if (patchInsertOn != null) { + runnerConfig.setPatchInsertOn(patchInsertOn); + } + if (patchResetChecksumOn != null) { + runnerConfig.setPatchResetChecksumOn(patchResetChecksumOn); + } if (properties != null) { runnerConfig.load(properties); } diff --git a/src/test/java/io/ebean/config/DbMigrationConfigTest.java b/src/test/java/io/ebean/config/DbMigrationConfigTest.java index 10cd3721a..8e5480cde 100644 --- a/src/test/java/io/ebean/config/DbMigrationConfigTest.java +++ b/src/test/java/io/ebean/config/DbMigrationConfigTest.java @@ -29,6 +29,8 @@ public class DbMigrationConfigTest { Properties properties = new Properties(); properties.setProperty("ebean.migration.dbusername", "banana"); properties.setProperty("ebean.migration.dbpassword", "apple"); + properties.setProperty("ebean.migration.patchInsertOn", "1.3,my_views"); + properties.setProperty("ebean.migration.patchResetChecksumOn", "foo"); PropertiesWrapper wrapper = new PropertiesWrapper("ebean", "db", properties); @@ -37,6 +39,8 @@ public class DbMigrationConfigTest { assertEquals(migrationConfig.getDbUsername(),"banana"); assertEquals(migrationConfig.getDbPassword(),"apple"); + assertEquals(migrationConfig.getPatchInsertOn(),"1.3,my_views"); + assertEquals(migrationConfig.getPatchResetChecksumOn(),"foo"); } @Test