HikariCP DataSourceProperties в файле YML - PullRequest
0 голосов
/ 01 февраля 2020

Я использую 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);

Я заставил его работать, используя конфигурацию, как объяснено в руководстве но я сталкиваюсь с проблемами, включающими свойства источника данных в конфигурацию 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"

Но это не сработало. Есть ли способ добавить это или нет?

1 Ответ

1 голос
/ 05 февраля 2020

Попробуйте использовать полный JDB C URL вместо:

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

Дайте мне знать, работает ли он для вас.

Облако SQL Socket Factory для драйверов JDB C

...