Flyway不会在调用connection.close后关闭连接

问题描述 投票:0回答:1

我在应用程序中使用了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)
      }
    }

似乎连接从未关闭,因为我每次都会得到“假”打印。

kotlin vert.x flyway
1个回答
0
投票

因为您要关闭连接,而不是数据源。

归结为:

// 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
© www.soinside.com 2019 - 2024. All rights reserved.