Spring Boot Framework не инициализирует базу данных при запуске

#java #spring #postgresql #spring-boot #kotlin

#java #spring #postgresql #spring-boot #kotlin

Вопрос:

У меня проблема с Spring Framework. Он не создает базу данных автоматически при запуске. Я прочитал инструкции Spring о том, как инициализировать базу данных, и выполнил эти шаги, но это не работает. Я также искал в Интернете похожие проблемы, но не нашел ничего, что могло бы мне помочь.

Описание ошибки:

При запуске сервера я получаю сообщение об ошибке:
FATAL: Datenbank »money_man_api_db« existiert nicht (Немецкий)
FATAL: Database »money_man_api_db« does not exist (Перевод на английский)

Моя конфигурация:

application.properties:

 server.port=3000

# Basic Connection Configuration
spring.datasource.hikari.connection-timeout=20000
spring.datasource.hikari.maximum-pool-size=5

# PostgreSQL Configuration
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=create

spring.datasource.initialization-mode=always
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/money_man_api_db
spring.datasource.username=postgres
spring.datasource.password=admin
  

Почему база данных не инициализируется? Я что-то забыл?

Комментарии:

1. Springboot не собирается автоматически создавать базу данных для вас. Вам нужно создать базу данных самостоятельно. Но Springboot может автоматически создавать таблицы в БД. У вас уже есть свойство для этого: spring.jpa.hibernate.ddl-auto.

2. В этом случае название руководства действительно вводит в заблуждение, спасибо за ваш ответ.

Ответ №1:

Сначала вы должны создать базу данных, позже вы сможете подключиться к этой базе данных.

Название вводит в заблуждение, потому что Hibernate не создаст базу данных, но создаст таблицы в этой базе данных. Hibernate — это ORM, он будет создавать совместимые SQL-запросы для взаимодействия с базой данных. Это слой между вашим OO-кодом и базой данных, который заботится о сложности создания SQL-запросов и их сопоставления с вашим кодом.

Более подробную информацию можно найти здесь: https://hibernate.org/orm /