【发布时间】:2020-01-29 17:04:09
【问题描述】:
对持久实体所做的任何更改,只有对实体所做的更改才会反映在生成的 diff liquibase 文件中。但目前它每次运行“mvn liquibase:diff”时都会生成完整的更改日志文件。
请在 pom.xml 中找到设置
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.5.3</version>
<configuration>
<propertyFile>src/main/resources/liquibase.properties</propertyFile>
<diffChangeLogFile>src/main/resources/db/changelog/migrations/changelog.${timestamp}.xml</diffChangeLogFile>
<referenceUrl>hibernate:spring:com.company.project?hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&dialect=org.hibernate.dialect.PostgreSQLDialect</referenceUrl>
<changeLogFile>src/main/resources/db/changelog/db.changelog-master.xml</changeLogFile>
<outputChangeLogFile>src/main/resources/db/changelog/db.changelog.xml</outputChangeLogFile>
<driver>org.postgresql.Driver</driver>
<url>jdbc:postgresql://localhost:5432/db</url>
<defaultSchemaName>db</defaultSchemaName>
<username>***</username>
<password>***</password>
</configuration>
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.4.1212.jre7</version>
</dependency>
<dependency>
<groupId>org.liquibase.ext</groupId>
<artifactId>liquibase-hibernate4</artifactId>
<version>3.6</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.7.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.12.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
</dependencies>
</plugin>
liquibase.properties 文件:
url=jdbc:postgresql://localhost:5432/db
username=***
password=***
driver=org.postgresql.Driver
changeLogFile=src/main/resources/db/changelog/db.changelog-master.xml
outputChangeLogFile=src/main/resources/db/changelog/db.changelog-master.xml
referenceUrl=hibernate:spring:com.company.project?dialect=org.hibernate.dialect.PostgreSQLDialect&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
referenceDefaultSchemaName=db
请告诉我这里缺少什么。
【问题讨论】:
-
数据库@jdbc:postgresql://localhost:5432/db 是否为空?如果是,则生成完整的更改日志是正常的。数据库必须包含实体单次更改之前的当前状态。
标签: spring hibernate maven spring-boot liquibase