У меня есть отдельное приложение.Это на Java, Spring-Boot, Postgres и имеет жидкость.
Мне нужно развернуть мое приложение, а liquibase должен создать все таблицы и т. Д. Но он должен сделать это в пользовательской схеме, не являющейся публичной.Все служебные таблицы liquibase (databasechangelog и databasechangeloglock) также должны быть в пользовательской схеме.Как я могу создать свою схему в БД до того, как жидкость начнет работать?Я должен сделать это внутри моего приложения, когда оно развертывается, в конфигурации или что-то подобное.Без какого-либо ручного вмешательства в базу данных.
application.properties:
spring.datasource.jndi-name=java:/PostgresDS
spring.jpa.properties.hibernate.default_schema=my_schema
spring.jpa.show-sql = false
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
spring.datasource.continue-on-error=true
spring.datasource.sql-script-encoding=UTF-8
liquibase.change-log = classpath:liquibase/changelog-master.yaml
liquibase.default-schema = my_schema
UPD:
Когда запускается жидкая база, создается две таблицы databaseloglogs и еще одна таблица.После этого ликвидазы начинают работать.Но я хочу использовать liquibase в liquibase.default-schema = my_schema
, но он не существует, когда liquibase начинает работать, и это ошибка: исключение - liquibase.exception.LockException: liquibase.exception.DatabaseException: ОШИБКА: схема "my_schema" не существует
Я хочу работать с liquibase в пользовательской схеме, а не публично:
liquibase.default-schema = my_schema
, но прежде чем liquibase сможет это сделать, схема должна быть создана.Liquibase не может этого сделать, потому что он еще не запущен и для запуска нужна схема.Замкнутый круг.