diff --git a/pom.xml b/pom.xml
index a9598294e..bec721071 100644
--- a/pom.xml
+++ b/pom.xml
@@ -136,7 +136,7 @@
io.ebean
ebean-migration
- 12.1.2
+ 12.1.3
diff --git a/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java b/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java
index a5bcf2b1e..ebc8b9ded 100644
--- a/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java
+++ b/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java
@@ -3,6 +3,7 @@ package io.ebeaninternal.dbmigration;
import io.ebean.config.DbMigrationConfig;
import io.ebean.config.ServerConfig;
import io.ebean.config.dbplatform.DatabasePlatform;
+import io.ebean.migration.ddl.DdlAutoCommit;
import io.ebean.migration.ddl.DdlRunner;
import io.ebean.migration.runner.ScriptTransform;
import io.ebean.util.JdbcClose;
@@ -47,6 +48,7 @@ public class DdlGenerator {
private final boolean ddlAutoCommit;
private final String dbSchema;
private final ScriptTransform scriptTransform;
+ private final String platformName;
private CurrentModel currentModel;
private String dropAllContent;
@@ -60,13 +62,15 @@ public class DdlGenerator {
this.extraDdl = serverConfig.isDdlExtra();
this.createOnly = serverConfig.isDdlCreateOnly();
this.dbSchema = serverConfig.getDbSchema();
+ final DatabasePlatform databasePlatform = server.getDatabasePlatform();
+ this.platformName = databasePlatform.getPlatform().base().name();
if (!serverConfig.getTenantMode().isDdlEnabled() && serverConfig.isDdlRun()) {
log.warn("DDL can't be run on startup with TenantMode " + serverConfig.getTenantMode());
this.runDdl = false;
this.ddlAutoCommit = false;
} else {
this.runDdl = serverConfig.isDdlRun();
- this.ddlAutoCommit = server.getDatabasePlatform().isDdlAutoCommit();
+ this.ddlAutoCommit = databasePlatform.isDdlAutoCommit();
}
this.scriptTransform = createScriptTransform(serverConfig.getMigrationConfig());
this.baseDir = initBaseDir();
@@ -156,19 +160,19 @@ public class DdlGenerator {
/**
* Execute all the DDL statements in the script.
*/
- public int runScript(Connection connection, boolean expectErrors, String content, String scriptName) {
+ public void runScript(Connection connection, boolean expectErrors, String content, String scriptName) {
- DdlRunner runner = new DdlRunner(expectErrors, scriptName);
+ DdlRunner runner = createDdlRunner(expectErrors, scriptName);
try {
if (expectErrors || ddlAutoCommit) {
connection.setAutoCommit(true);
}
- int count = runner.runAll(scriptTransform.transform(content), connection);
+ runner.runAll(scriptTransform.transform(content), connection);
if (expectErrors || ddlAutoCommit) {
connection.setAutoCommit(false);
}
connection.commit();
- return count;
+ runner.runNonTransactional(connection);
} catch (SQLException e) {
throw new PersistenceException("Failed to run script", e);
@@ -177,6 +181,10 @@ public class DdlGenerator {
}
}
+ private DdlRunner createDdlRunner(boolean expectErrors, String scriptName) {
+ return new DdlRunner(expectErrors, scriptName, DdlAutoCommit.forPlatform(platformName));
+ }
+
protected void runDropSql(Connection connection) throws IOException {
if (!createOnly) {
if (extraDdl && jaxbPresent) {
diff --git a/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java b/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java
index cb461820c..4be34902a 100644
--- a/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java
+++ b/src/test/java/io/ebeaninternal/dbmigration/DbMigrationTest.java
@@ -20,12 +20,12 @@ import static org.assertj.core.api.Assertions.assertThat;
public class DbMigrationTest extends BaseTestCase {
- private int runScript(boolean expectErrors, String scriptName) throws IOException {
+ private void runScript(boolean expectErrors, String scriptName) throws IOException {
String ddl = Helper.asText(this, "/dbmigration/migrationtest/" + server().getPluginApi().getDatabasePlatform().getName()+"/" + scriptName);
- return runScript(expectErrors, ddl, scriptName);
+ runScript(expectErrors, ddl, scriptName);
}
- private int runScript(boolean expectErrors, String content, String scriptName) {
+ private void runScript(boolean expectErrors, String content, String scriptName) {
DdlRunner runner = new DdlRunner(expectErrors, scriptName);
@@ -35,12 +35,11 @@ public class DbMigrationTest extends BaseTestCase {
if (expectErrors) {
connection.setAutoCommit(true);
}
- int count = runner.runAll(content, connection);
+ runner.runAll(content, connection);
if (expectErrors) {
connection.setAutoCommit(false);
}
transaction.commit();
- return count;
} catch (SQLException e) {
throw new PersistenceException("Failed to run script", e);