Spring 启动 2:使用 Flyway 时检测到明显的连接泄漏

Spring boot 2: Apparent connection leak detected when using Flyway

我有 spring boot 2 应用程序,我正在使用 Flyway 进行数据库迁移。我在应用程序启动时以编程方式执行 flyway 迁移。这样做时我得到:java.lang.Exception:检测到明显的连接泄漏

在行中:

Database database = org.flywaydb.core.internal.database.DatabaseFactory.createDatabase(flyway, false);

这是我的 Hikari CP 配置:

spring.datasource.max-active=20
spring.datasource.idle-timeout=10000
spring.datasource.initial-size=20
spring.datasource.test-on-return=true
spring.datasource.hikari.leak-detection-threshold=10000

所以 Flyway 显然不会关闭连接。解决方案是手动处理:

try (Database database = DatabaseFactory.createDatabase(flyway, false)) {
     database.getMainConnection(); // this is important, otherwise there will be connection leak
     doRunMigrations(database);
}