Skip to content

Commit 2ed655b

Browse files
committed
#158 - fastMode fails with MySQL and Hikari and AutoCommit=true
1 parent 231c29c commit 2ed655b

File tree

3 files changed

+28
-7
lines changed

3 files changed

+28
-7
lines changed

ebean-migration/pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,13 @@
4949

5050
<!-- test dependencies -->
5151

52+
<dependency>
53+
<groupId>com.zaxxer</groupId>
54+
<artifactId>HikariCP</artifactId>
55+
<version>5.1.0</version>
56+
<scope>test</scope>
57+
</dependency>
58+
5259
<dependency>
5360
<groupId>io.avaje</groupId>
5461
<artifactId>avaje-slf4j-jpl</artifactId>

ebean-migration/src/main/java/io/ebean/migration/runner/MigrationPlatform.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,9 @@ List<MigrationMetaRow> fastReadMigrations(String sqlTable, Connection connection
8787
}
8888
}
8989
} finally {
90-
connection.rollback();
90+
if (!connection.getAutoCommit()) {
91+
connection.rollback();
92+
}
9193
}
9294
return rows;
9395
}

ebean-migration/src/test/java/io/ebean/migration/MigrationRunner_platform_Test.java

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.ebean.migration;
22

3+
import com.zaxxer.hikari.HikariConfig;
4+
import com.zaxxer.hikari.HikariDataSource;
35
import io.ebean.ddlrunner.DdlRunner;
46
import io.ebean.test.containers.*;
57
import org.junit.jupiter.api.Disabled;
@@ -210,13 +212,23 @@ public void mysql_migration() throws SQLException {
210212

211213
config.setMigrationPath("dbmig_basic");
212214

213-
MigrationRunner runner = new MigrationRunner(config);
214-
runner.run();
215+
HikariConfig hikariConfig = new HikariConfig();
216+
hikariConfig.setJdbcUrl(mysqlContainer.jdbcUrl());
217+
hikariConfig.setUsername("mig_test");
218+
hikariConfig.setPassword("test");
215219

216-
try (Connection connection = mysqlContainer.createConnection()) {
217-
readQuery(connection, "select * from m1");
218-
readQuery(connection, "select * from m2");
219-
readQuery(connection, "select * from m3");
220+
try (HikariDataSource ds = new HikariDataSource(hikariConfig)) {
221+
MigrationRunner runner = new MigrationRunner(config);
222+
try (Connection connection1 = ds.getConnection()) {
223+
// connection1.setAutoCommit(false);
224+
runner.run(connection1);
225+
}
226+
227+
try (Connection connection = mysqlContainer.createConnection()) {
228+
readQuery(connection, "select * from m1");
229+
readQuery(connection, "select * from m2");
230+
readQuery(connection, "select * from m3");
231+
}
220232
}
221233

222234
mysqlContainer.stopRemove();

0 commit comments

Comments
 (0)