我在应用程序中使用了flyway。每当应用程序加载时,我都会调用flyway.migrate()函数。在我的应用程序启动后,我不需要进行任何进一步的操作,因此我想释放该资源并关闭连接。下面的块描述了我要做什么:
fun initFlywayAndMigrate() {
val flyway = Flyway.configure()
.dataSource(
"jdbc:postgresql://host:ip/db-name",
"user"),
"password")
)
.connectRetries(3)
.schemas("my-schema")
.load()
flyway.migrate()
val conn = flyway.configuration.dataSource.connection
try {
conn.close()
} catch (t: Throwable) {
println(t.message)
} finally {
println(flyway.configuration.dataSource.connection.isClosed)
}
}
似乎连接从未关闭,因为我每次都会得到“假”打印。
因为您要关闭连接,而不是数据源。
归结为:
// Get a connection
val conn = flyway.configuration.dataSource.connection
// Close it
conn.close()
// Get another connection and see if it's closed
flyway.configuration.dataSource.connection.isClosed