создать схему в postgres при запуске весенней загрузки - PullRequest
0 голосов
/ 02 ноября 2018

Мне нужно создать новую схему в Postgres, когда загрузится весенняя загрузка. Таким образом, он должен проверить, если схема не существует, а затем создать новую схему. Я использую application.properties для конфигурации базы данных.

spring.datasource.platform=postgres
spring.datasource.url=jdbc:postgresql://${vcap.services.postgresql-lite.credentials.hostname}:${vcap.services.postgresql-lite.credentials.port}/${vcap.services.postgresql-lite.credentials.dbname}
spring.datasource.username=${vcap.services.postgresql-lite.credentials.username}
spring.datasource.password=${vcap.services.postgresql-lite.credentials.password}
spring.jpa.properties.hibernate.default_schema=${DATABASE_SCHEMA}
spring.jpa.hibernate.ddl-auto=update
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect

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

Ответы [ 3 ]

0 голосов
/ 02 ноября 2018

Используйте следующий файл application.properties:

spring.datasource.initialize=true
spring.datasource.schema=${DB_SCHEMA}

В вашем файле схемы добавьте следующее:

CREATE TABLE IF NOT EXISTS...
0 голосов
/ 02 ноября 2018

Postgres не поддерживает Create Database If not exist.

Таким образом, изменив hibernate.hbm2ddl.auto=create и изменив URL jdbc.url=jdbc:postgresql://localhost/database?createDatabaseIfNotExist=true не будет работать для вас.

Вы можете попробовать смоделировать поведение, как показано в следующих вопросах:

Создание базы данных PostgreSQL на лету с использованием Hibernate, даже если БД не существует

Имитировать создание базы данных, если она не существует для PostgreSQL?

0 голосов
/ 02 ноября 2018

Вы можете разместить файл schema-postgresql.sql в src / main / resources с содержанием:

СОЗДАТЬ СХЕМУ, ЕСЛИ НЕ СУЩЕСТВУЕТ;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...