我正在使用Spring Boot 2.0.2,Liquibase 3.5.5和PostgreSQL10。我能够成功在数据库和JPA实体之间创建差异。但是,当我将这些更改应用于数据库时,它将针对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连接放置,因为单独使用其中一个都不起作用。两者都不起作用。
有人成功解决了这个问题吗?
答案 0 :(得分:0)
我已升级到最新版本的PostgreSQL驱动程序42.2.5,并使用带有?currentSchema = schemaName的驱动程序的网址,并且可以正常工作。
示例:jdbc:postgresql:// localhost:5432 / FCV2Db?currentSchema = dbo