测试容器甲骨文
Posted
技术标签:
【中文标题】测试容器甲骨文【英文标题】:TestContainer Oracle 【发布时间】:2021-02-23 12:13:42 【问题描述】:根据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)
有人可以帮我吗?
【问题讨论】:
【参考方案1】:如果我没记错的话,Flyway 社区版(Quarkus 附带)不支持 Oracle。您需要使用企业版。
您需要替换 Quarkus Flyway 依赖项。只需排除包含的一项并添加企业一项(在 Maven 或 Gradle 中)。
【讨论】:
我看到我没有发布完整的错误:在错误中它还说:SQL State : 66000 Error Code : 12505 Message : Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
这似乎是连接数据库的问题。您可以通过任何其他方式连接到数据库吗?以 SQL 客户端为例?以上是关于测试容器甲骨文的主要内容,如果未能解决你的问题,请参考以下文章