liquibase - 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)
如何解决这个问题?
解决方案
set*Remarks
某些数据库(包括 MySQL)不支持对象的评论更新(Liquibase 的)。因此,立即修复可能是从您的更改日志中删除此操作。
在我的项目中,我们通过比较(与liquibase diffChangeLog
)2 个模式来生成更改集,并且setColumnRemarks
包含操作,尽管它们之后无法执行。所以我只是从结果更改集中删除这些操作。
恐怕一个合适的解决方案是将适当的 MySQL SQL 生成器实现添加到 Liquibase。
推荐阅读
- c# - 在 asp.net core 中生成动态路由路径
- c# - ITextSharp 错误仅在生产中
- flutter - Flutter BLoC - StreamSubscription 不监听已调度的事件
- selenium - 搜索结果 Web 结果 可折叠导航栏
- python - C python API中的分配对象和调用方法
- javascript - 向 TypeScript 对象添加值
- node.js - 如何在无服务器应用程序中通过 YAML 添加自定义文件夹和文件
- python - 使用 Python 和 Selenium 通过 JavaScript 抓取动态生成的 html
- ios - 如何转换 SKShapeNode
- tensorflow - Yocto 张量流 2.0