我使用liquibase diff生成dev mysql和prod mysql之间的diff,我看到有一些变化集如:
当我运行diff文件时,它显示异常,例如: mysql,db / changelog / V1.1.0_prod_uat.xml :: 1524893614482-984 :: davy(生成)不支持setColumnRemarks mysql,db / changelog / V1.1.0_prod_uat.xml :: 1524893614482-985 :: davy(生成)不支持setColumnRemarks mysql不支持setColumnRemarks,db / changelog / V1.1.0_prod_uat.xml :: 1524893614482-986 :: davy(生成)
at liquibase.changelog.DatabaseChangeLog.validate(DatabaseChangeLog.java:276)
at liquibase.Liquibase.update(Liquibase.java:198)
at liquibase.Liquibase.update(Liquibase.java:179)
at liquibase.integration.spring.SpringLiquibase.performUpdate(SpringLiquibase.java:317)
at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:269)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1769)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1706)
如何解决此问题?
答案 0 :(得分:0)
某些数据库(包括MySQL)不支持对象的注释更新(Liquibase的set*Remarks
)。因此,立即的解决方法是从更改日志中删除此操作。
在我的项目中,我们通过比较(与liquibase diffChangeLog
)两个模式来生成变更集,并且包含了setColumnRemarks
操作,尽管这些操作之后无法执行。所以我只是从结果更改集中删除这些操作。
恐怕合适的解决方案是在Liquibase中添加适当的MySQL SQL生成器实现。