首页 > 解决方案 > mysql 不支持 setColumnRemarks

问题描述

我使用 liquibase diff 生成 dev mysql 和 prod mysql 之间的差异,我看到存在一些更改集,例如:

当我运行差异文件时,它显示如下异常:mysql,db/changelog/V1.1.0_prod_uat.xml::1524893614482-984::davy (generated) setColumnRemarks is not supported on mysql, db/changelog /V1.1.0_prod_uat.xml::1524893614482-985::davy (已生成) setColumnRemarks 在 mysql 上不受支持,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)

如何解决这个问题?

标签: liquibase

解决方案


set*Remarks某些数据库(包括 MySQL)不支持对象的评论更新(Liquibase 的)。因此,立即修复可能是从您的更改日志中删除此操作。

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

恐怕一个合适的解决方案是将适当的 MySQL SQL 生成器实现添加到 Liquibase。


推荐阅读