Liquibase / Spring Boot / Postgres - имя схемы не работает - PullRequest
0 голосов
/ 18 ноября 2018

Я использую Spring Boot 2.0.2, Liquibase 3.5.5 и PostgreSQL 10. Я могу успешно создать diff между базой данных и моими сущностями JPA.Однако, когда я применяю эти изменения к базе данных, она применяет изменения к стандартной схеме public в PostgreSQL.Однако я хочу, чтобы он применял изменения к другой схеме, "dbo".

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

Вот что я пытался:

<plugin>
                <groupId>org.liquibase</groupId>
                <artifactId>liquibase-maven-plugin</artifactId>
                <version>3.5.5</version>
                <configuration>
                    <changeLogFile>src/main/resources/db/changelog/db.changelog-master.yaml</changeLogFile>
                    <diffChangeLogFile>src/main/resources/db/changelog/${maven.build.timestamp}_changelog.xml</diffChangeLogFile>
                    <propertyFile>src/main/resources/liquibase.properties</propertyFile>
                    <defaultSchemaName>dbo</defaultSchemaName>
                    <driver>org.postgresql.Driver</driver>
                    <url>jdbc:postgresql://localhost:5432/FCV2Db?currentSchema=dbo</url>
                    <username>postgres</username>
                    <password>fastcode</password>
                    <referenceUrl>hibernate:spring:com.nfinity.fastcode.domain?dialect=org.hibernate.dialect.PostgreSQL9Dialect</referenceUrl>
                    <verbose>true</verbose>
                    <logging>debug</logging>
                    <dropFirst>false</dropFirst>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.liquibase.ext</groupId>
                        <artifactId>liquibase-hibernate5</artifactId>
                        <version>3.6</version>
                    </dependency>
                    <dependency>
                        <groupId>org.javassist</groupId>
                        <artifactId>javassist</artifactId>
                        <version>3.23.1-GA</version>
                    </dependency>
                    <dependency>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-data-jpa</artifactId>
                        <version>2.0.2.RELEASE</version>
                    </dependency>
                    <dependency>
                        <groupId>javax.validation</groupId>
                        <artifactId>validation-api</artifactId>
                        <version>2.0.1.Final</version>
                    </dependency>
                </dependencies>
            </plugin>

Да, я пытался ввести имя схемы какСвойство конфигурации и соединение JDBC Url с использованием одного или другого не работали.Использование обоих тоже не помогло.

Кто-нибудь успешно справился с этой проблемой?

1 Ответ

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

Я обновил до последней версии драйвера PostgreSQL 42.2.5 и использовал URL-адрес драйвера с? CurrentSchema = schemaName, и он работал.

Пример: jdbc: postgresql: // localhost: 5432 / FCV2Db? CurrentSchema = ДБО

...