liquibase中更新列类型时如何保留备注?

How to keep remark when update type of a column in liquibase?

我尝试使用 modifyDataType in a Groovy DSL 更新列的类型。我运行通过liquibase-maven-plugin(版本是3.8.9)更新liquibase后,发现column的备注消失了

这是我的代码:

changeSet(author: "root", id: "20201218-modify-data-type") {
    modifyDataType(columnName: "description", newDataType: "text", tableName: "t_user")

    rollback {
        modifyDataType(columnName: "description", newDataType: "varchar(2000)", tableName: "t_user")
    }
}

我无法在 modifyDataType() 中添加参数“remark”,因为 'remarks' is an invalid property for 'modifyDataType' changes

MySQL 实现其 ALTER TABLE MODIFY COLUMN 的方式就像删除旧列并添加新列一样。这不仅会丢失备注,还会丢失约束或主键或与“旧”列相关的任何其他内容。

我们没有将所有这些字段都添加到 modifyDataType 中,因为我们必须在其中包含的内容真的没有尽头。相反,如果您修改 mysql 上的数据类型,则需要在单独的调用中重新设置备注、主键等。

我们为 mysql 输出了一条关于丢失主要 key/constraint 信息的警告,但我们只为非 varchar 数据类型显示它以减少警告的数量。由于它会影响可以在 varchars 上的备注之类的东西,因此可能值得删除检查的非 varchar 部分。