You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Cloud App Engine的Quarkus中配置额外JDBC属性

解决Quarkus 1.x连接Google Cloud SQL PostgreSQL的JDBC属性配置问题

你遇到的问题主要来自两个核心点:Quarkus版本对应的配置项差异,以及缺少Cloud SQL Socket Factory的依赖。你的Quarkus版本是1.10.2.Final(属于1.x旧版本),但参考的文档是针对新版本的,所以配置项不匹配,下面是具体的解决步骤:

1. 修正JDBC额外属性的配置方式

在Quarkus 1.x系列中,不支持quarkus.datasource.jdbc.additional-jdbc-properties这种批量配置的写法,需要为每个额外JDBC属性单独配置,统一使用quarkus.datasource.jdbc.property.作为前缀。

修改你的application.properties数据源配置部分:

quarkus.package.type=uber-jar
# datasource configuration
quarkus.datasource.db-kind = postgresql
quarkus.datasource.jdbc.url = jdbc:postgresql:///counter
quarkus.datasource.username = postgres
quarkus.datasource.password = <password>
# 单独配置每个JDBC属性
quarkus.datasource.jdbc.property.socketFactory=com.google.cloud.sql.postgres.SocketFactory
quarkus.datasource.jdbc.property.cloudSqlInstance=<project>:<region>:<instance>
quarkus.datasource.jdbc.max-size=16
# drop and create the database at startup (use `update` to only update the schema)
quarkus.hibernate-orm.database.generation=drop-and-create

2. 添加Cloud SQL Socket Factory依赖

你的pom.xml中缺少连接Google Cloud SQL必需的Socket Factory依赖,需要在<dependencies>块中添加以下内容:

<dependency>
    <groupId>com.google.cloud.sql</groupId>
    <artifactId>postgres-socket-factory</artifactId>
    <!-- 版本会由你引入的libraries-bom自动管理,无需手动指定 -->
</dependency>

由于你已经引入了Google的libraries-bom,bom会自动维护兼容的依赖版本,不需要额外指定版本号。

为什么之前的配置失败?

  • quarkus.datasource.jdbc.additional-jdbc-properties这个批量配置项是Quarkus 2.x及以后版本才引入的,你的1.10.2.Final版本不支持该属性,所以会被日志提示"忽略"。
  • 缺少Socket Factory依赖的话,即使配置了属性,运行时也找不到对应的类,最终会导致连接失败。

完成以上修改后,重新打包部署到App Engine,应该就能成功连接到Google Cloud SQL的PostgreSQL实例了。

内容的提问来源于stack exchange,提问作者RHa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:52:59