TestContainer Oracle

问题描述

根据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中)。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...