mysql不支持setColumnRemarks

时间:2018-04-28 15:49:52

标签: liquibase

我使用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)

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

某些数据库(包括MySQL)不支持对象的注释更新(Liquibase的set*Remarks)。因此,立即的解决方法是从更改日志中删除此操作。

在我的项目中,我们通过比较(与liquibase diffChangeLog)两个模式来生成变更集,并且包含了setColumnRemarks操作,尽管这些操作之后无法执行。所以我只是从结果更改集中删除这些操作。

恐怕合适的解决方案是在Liquibase中添加适当的MySQL SQL生成器实现。