YML 文件中的 HikariCP DataSourceProperties

HikariCP DataSourceProperties in YML file

我正在使用 Micronaut 并尝试实施 Hikari 以连接到 PostgresSQL 数据库。我已经使用 yml 配置在本地连接上工作了

datasources:
  default:
    jdbcUrl: "jdbc:postgresql://127.0.0.1:3306/playland"
    username: "user"
    password: "password"

而且效果很好。问题是,当我将它部署到 App Engine 时,我需要使用以下内容。如果可能的话,我更愿意(我认为)将它添加到 yml 配置中,但我似乎无法弄清楚。

// For Java users, the Cloud SQL JDBC Socket Factory can provide authenticated connections.
// See https://github.com/GoogleCloudPlatform/cloud-sql-jdbc-socket-factory for details.
config.addDataSourceProperty("socketFactory", "com.google.cloud.sql.postgres.SocketFactory");
config.addDataSourceProperty("cloudSqlInstance", CLOUD_SQL_CONNECTION_NAME);

我已经按照教程中的说明使用配置使其工作,但我 运行 遇到将 datasourceproperties 合并到 yml 配置的问题。我根据另一个 SO 答案尝试了这个:

datasources:
  default:
    jdbcUrl: "jdbc:postgresql:///playland"
    username: "user"
    password: "password"
    hikari:
      data-source-properties:
        socketFactory: "com.google.cloud.sql.postgres.SocketFactory"
        cloudSqlInstance: "project:region:instance"

但是没有用。有没有办法添加或不添加?

尝试使用 完整 JDBC URL 代替:

jdbc:postgresql:///<DATABASE_NAME>?cloudSqlInstance=<INSTANCE_CONNECTION_NAME>&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=<POSTGRESQL_USER_NAME>&password=<POSTGRESQL_USER_PASSWORD>

让我知道它是否适合你。

Cloud SQL Socket Factory for JDBC drivers