多个数据库依赖关系导致Quarkus中的数据库连接



我有两个环境,比如onprem和awsonprem我们已经连接了Oracle数据库和所需的配置已经完成,但对于aws,我们正在使用aurora-postgres,无论何时我尝试添加postgres依赖项,然后部署到aws环境它给出了错误,所以如果我们有同一pom文件中的多个依赖项,用于不同的环境。

Quarks version : 1.13.3.final
Sample configuration:
Oracle:
-------
quarkus.datasource.db-kind=oracle
quarkus.datasource.username=user-default
quarkus.datasource.password=password-default
quarkus.datasource.reactive.url=jdbc:oracle:thin://localhost:5432/default
Postgresql:
-----------
quarkus.datasource.db-kind=postgresql 
quarkus.datasource.username=user-default
quarkus.datasource.password=password-default
quarkus.datasource.reactive.url=postgresql://localhost:5432/default

代码或问题:我得到的问题如下:

2021-11-11 07:18:45,173 WARN [org.hib.eng.jdb.env.int.JdbcEnvironmentInitiator] (main) HHH000342: Could not obtain connection to query metadata: java.sql.SQLException: Driver does not support the provided URL: jdbc:postgresql://
at io.agroal.pool.ConnectionFactory.connectionSetup(ConnectionFactory.java:220)
at io.agroal.pool.ConnectionFactory.createConnection(ConnectionFactory.java:204)
at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:490)
at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:472)

Dependencies:
quarkus-jdbc-oracle
quarkus-jdbc-postgresql

根据官方文档,您可以使用多个数据源。但是,如果您的超过1个,则必须提供名称。否则Quarkus将如何知道要使用哪些驱动程序。

格式:quarkus.datasource.<datasourceCustomName>.如果它不是不需要名称的默认DataSource。

注意事项:For now, multiple datasources are only supported for JDBC and the Agroal extension. So it is not currently possible to create multiple reactive datasources.

https://quarkus.io/guides/datasource#multiple-数据源

多个数据源

配置多个数据源

目前,只有JDBC和农业推广。因此,目前不可能创建多个被动数据源。

Hibernate ORM扩展支持定义几个持久性使用配置属性的单元。对于每个持久性单元可以指向您选择的数据源。

定义多个数据源与定义单个数据源,有一个重要的更改:定义一个名称。

在以下示例中,您有3个不同的数据源:

  1. 默认值
  2. 一个名为users的数据源
  3. 一个名为inventory的数据源

每个都有自己的配置。

quarkus.datasource.db-kind=h2
quarkus.datasource.username=username-default
quarkus.datasource.jdbc.url=jdbc:h2:mem:default
quarkus.datasource.jdbc.max-size=13
quarkus.datasource.users.db-kind=h2
quarkus.datasource.users.username=username1
quarkus.datasource.users.jdbc.url=jdbc:h2:mem:users
quarkus.datasource.users.jdbc.max-size=11
quarkus.datasource.inventory.db-kind=h2
quarkus.datasource.inventory.username=username2
quarkus.datasource.inventory.jdbc.url=jdbc:h2:mem:inventory
quarkus.datasource.inventory.jdbc.max-size=12

quarkus.datasource.db-kind在构建时是固定的。该属性在运行时无法更改。

你必须为Oracle构建应用程序,并为Postgresql单独构建

https://quarkus.io/guides/all-config#quarkus-数据源_quarkus.datasource.db-类

最新更新