问题描述
根据https://www.testcontainers.org/modules/databases/jdbc/#database-containers-launched-via-jdbc-url-scheme,我正在尝试使用jdbc url方案使用Quarkus创建Oracle容器。 提供有效的docker映像(“ store / oracle / database-instantclient:12.2.0.1”)并设置以下属性后:
"%test":
quarkus:
datasource:
jdbc:
driver: org.testcontainers.jdbc.ContainerDatabaseDriver
url: jdbc:tc:oracle:///databasename
db-kind: other
我收到此错误:
Container is started (JDBC URL: jdbc:oracle:thin:system/oracle@localhost:32827:xe)
2020-11-09 17:33:06,719 INFO [? .2.0.1]] (Agroal_13889837441) Container store/oracle/database-instantclient:12.2.0.1 started in PT4M7.8483772S
2020-11-09 17:33:06,738 WARN [io.agr.pool] (Agroal_13889837441) Datasource '<default>': Could not create new connection
2020-11-09 17:33:06,805 ERROR [io.qua.application] (main) Failed to start application (with profile test): org.flywaydb.core.internal.exception.FlywaySqlException:
Unable to obtain connection from database: Could not create new connection
--------------------------------------------------------------------------
SQL State : null
Error Code : 0
Message : Could not create new connection
at org.flywaydb.core.internal.jdbc.JdbcUtils.openConnection(JdbcUtils.java:65)
at org.flywaydb.core.internal.jdbc.JdbcConnectionFactory.<init>(JdbcConnectionFactory.java:80)
at org.flywaydb.core.Flyway.execute(Flyway.java:453)
at org.flywaydb.core.Flyway.migrate(Flyway.java:158)
有人可以帮我吗?
解决方法
如果我没记错的话,Flyway社区版本(与Quarkus一起提供)不支持Oracle。您需要使用企业版。
您需要替换Quarkus Flyway依赖项。只需排除其中的一个,然后添加企业中的一个(在Maven或Gradle中)。