我正在使用带有 spring boot 的 liquibase 插件来生成
changeSets
。使用 mvn liquibase:diff
,我生成了 changeSets
,其中包含我的实体和数据库模式之间的差异。一切正常,但是当我修改实体的 @Column
的可空性时,它不会生成 changeSets
。它应该创建 dropNotNullConstraint
和 addNotNullConstraint
。
我的 liquibase.properties:
changeLogFile=src/main/resources/update/db.changelog/changelog-master.xml
url=jdbc:postgresql://localhost:5432/...
username=....
password=....
driver=org.postgresql.Driver
referenceUrl=hibernate:spring:package.of.my.entities?dialect=org.hibernate.dialect.PostgreSQLDialect&hibernate.physical_naming_strategy=configuration.CustomPhysicalNamingStrategy
diffChangeLogFile=src/main/resources/update/db.changelog/changelog-diff.xml
我希望使用
mvn liquibase:diff
,如果我修改了实体列的可空性,liquibase 应该生成 changeSets
和 dropNotNullConstraint
的 addNotNullConstraint
。
Liquibase hibernate 扩展有一些限制,并且出现了一些与这种迁移相关的错误,例如 https://github.com/liquibase/liquibase-hibernate/issues/454 (它不一样,但与之相关)。