Автоматическое создание базы данных postgresql с использованием флага URL соединения JDB C, например, `createDatabaseIfNotExist = true` - PullRequest
0 голосов
/ 15 апреля 2020

Для проекта Spring Boot я сейчас использую MySQL. Но хочу переместить базу данных в PostgreSQL.

. Для автоматического создания базы данных при запуске проекта я использую флаг createDatabaseIfNotExist=true в JDB C URL для MySQL

spring.datasource.url=jdbc:mysql://localhost:3306/kaukau_media?createDatabaseIfNotExist=true

Я использую инструменты миграции Liquibase для создания таблицы и изменения их при необходимости, но не для создания базы данных.

Есть ли JDB C флаг URL для PostgreSQL, такой как createDatabaseIfNotExist, который я могу использовать для автоматическое создание базы данных, если не существует. Если это невозможно, есть ли способ автоматически создать базу данных, если она не существует, с использованием какого-либо файла конфигурации?

Примечание : поскольку я уже использую инструменты миграции, я не Я хочу использовать spring.jpa.hibernate.ddl-auto

1 Ответ

0 голосов
/ 16 апреля 2020

Есть ли JDB C флаг URL для PostgreSQL, например, createDatabaseIfNotExist, который я могу использовать для автоматического создания базы данных, если его не существует.

Нет, его нет. Вам придется добавить свой собственный код для проверки существования базы данных и, возможно, создать его.

  • подключиться к системной базе данных (обычно работает "postgres")
  • проверить для базы данных существование с pg_database системным представлением
  • run CREATE DATABASE

Примечание : вероятно, не стоит разрешать создание базы данных для обычного пользователя, так как указал в комментариях. Если вам нужно, используйте для этого специальный логин.

...