Соединение приложения Spring Data JPA с Google Cloud Run Postgres

У Google есть пример для подключения Cloud SQL-MYSQl из Spring JPA/Boot App (используется коммит 9ecdc1111e3da388a750ace41a125287d9620534). Пример использует Spring Data и отлично работает с MySQL. Но это не работает, когда профиль изменен на postgress (после запуска правильной базы данных Postgres в той же учетной записи и с теми же шагами в # 2)

spring.profiles.active=postgres

И замена

  <artifactId>spring-cloud-gcp-starter-sql-mysql</artifactId>
with 
  <artifactId>spring-cloud-gcp-starter-sql-postgresql</artifactId>

И

replacing src/main/resources/application-mysql.properties 
with 
 src/main/resources/application-postgres.properties

Но все же приложения терпят неудачу с

Ошибка создания bean-компонента с именем 'entityManagerFactory', определенным в классе ресурс пути [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Не удалось вызвать метод инициализации; вложенное исключение org.hibernate.service.spi.ServiceException: невозможно создать запрошенный служба [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

Я не мог найти ни одного образца.

Application-postgres.properties добавляется, чтобы иметь

spring.profiles.active=postgres
spring.cloud.gcp.sql.instance-connection-name= xyzprj:us-central1:postgres-instance
spring.datasource.username=xyzuser
spring.datasource.password=password

Application-postgres.properties заменяется следующим образом

spring.datasource.username=xyzuser
spring.datasource.password=passord
spring.sql.init.mode=always
spring.cloud.gcp.sql.database-name=petclinic
spring.cloud.gcp.sql.instance-connection-name=xyzprj:us-central1:postgres-instance

Позже оба этих файла свойств также были изменены, так что

Spring.datasource.username = корень

И

Spring.datasource.password=корень

Но та же проблема образец опробован в Cloud Shell в Google Cloud,

Приложение gcloud auth — вход по умолчанию Вы работаете на виртуальной машине Google Compute Engine. учетные данные службы, связанные с этой виртуальной машиной, будут автоматически использоваться учетными данными приложения по умолчанию, поэтому это не необходимо использовать эту команду. Если вы все равно решите продолжить, ваши учетные данные пользователя могут быть видны другим пользователям, имеющим доступ к этой виртуальной машине. Ты уверен что хочешь авторизоваться в личном кабинете? Вы хотите продолжить (Т/Н)? н ОШИБКА: (gcloud.auth.application-default.login) Прервано пользователем.

Пример cloud.google.com/sql/docs/postgres/connect-instance-cloud-ru‌​n не использует Spring Data JPA

puzzled 11.01.2023 05:56
Руководство для начинающих по веб-разработке на React.js
Руководство для начинающих по веб-разработке на React.js
Веб-разработка - это захватывающая и постоянно меняющаяся область, которая постоянно развивается благодаря новым технологиям и тенденциям. Одним из...
Разница между Angular и React
Разница между Angular и React
React и AngularJS - это два самых популярных фреймворка для веб-разработки. Оба фреймворка имеют свои уникальные особенности и преимущества, которые...
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Веб-скрейпинг, как мы все знаем, это дисциплина, которая развивается с течением времени. Появляются все более сложные средства борьбы с ботами, а...
Калькулятор CGPA 12 для семестра
Калькулятор CGPA 12 для семестра
Чтобы запустить этот код и рассчитать CGPA, необходимо сохранить код как HTML-файл, а затем открыть его в веб-браузере. Для этого выполните следующие...
ONLBest Online HTML CSS JAVASCRIPT Training In INDIA 2023
ONLBest Online HTML CSS JAVASCRIPT Training In INDIA 2023
О тренинге HTML JavaScript :HTML (язык гипертекстовой разметки) и CSS (каскадные таблицы стилей) - две основные технологии для создания веб-страниц....
Как собрать/развернуть часть вашего приложения Angular
Как собрать/развернуть часть вашего приложения Angular
Вам когда-нибудь требовалось собрать/развернуть только часть вашего приложения Angular или, возможно, скрыть некоторые маршруты в определенных средах?
0
1
72
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я попытался воспроизвести проблему на своей стороне, но мне удалось успешно развернуть приложение.

Вот шаги, которые я выполнил

Шаг 1: Создано postgresql с помощью команды ниже

gcloud sql instances create postgres-instance \
--database-version=POSTGRES_13 \
 --cpu=1 \
 --memory=4GB \
 --region=us-central \
 --root-password=root

Шаг 2: Создал базу данных с помощью

gcloud sql databases create petclinic --instance postgres-instance

Шаг 3: подключение к экземпляру PostgreSQL, чтобы проверить, установлено соединение или нет.

gcloud sql connect postgres-instance

Шаг 4: замените следующее, как вы сделали В application.properties

spring.profiles.active=postgres

И замена

      <artifactId>spring-cloud-gcp-starter-sql-mysql</artifactId>
    with 
      <artifactId>spring-cloud-gcp-starter-sql-postgresql</artifactId>

И

    replacing src/main/resources/application-mysql.properties 
    with 
     src/main/resources/application-postgres.properties

Шаг 5: В дополнение к вышеуказанным изменениям

В application.properties заменено

spring.cloud.gcp.sql.instance-connection-name= POSTGRESQL_CONNECTION_NAME

В src/main/resources/application-postgres.properties добавлено

spring.datasource.username=USERNAME
spring.datasource.password=PASSWORD

В файл pom.xml добавлена ​​следующая зависимость

<dependency>
    <groupId>com.google.cloud.sql</groupId>
    <artifactId>postgres-socket-factory</artifactId>
    <version>1.1.0</version>
</dependency>

В файл build.grable добавить

dependencies {
    compile 'com.google.cloud.sql:postgres-socket-factory:1.1.0'
}

Примечание: запустите gcloud auth application-default login, чтобы получить доступ к учетным данным по умолчанию для связи с Cloud Sql API

Для получения четкой информации ознакомьтесь с этим документом

@puzzled Похоже, это ошибка аутентификации пароля. Попробуйте запустить gcloud auth application-login default и можете ли вы подтвердить, что можете подключиться postgresql с помощью gcloud sql connect INSTANCE-NAME ?

Roopa M 12.01.2023 07:21

И убедитесь, что вы передаете правильные учетные данные под src/main/resources/application-postgres.properties

Roopa M 12.01.2023 07:26

Это была ошибка пользователя, все работает Спасибо

puzzled 13.01.2023 04:20

Другие вопросы по теме