我尝试在Groovy DSL中使用modifyDataType更新列的类型。在我通过liquibase maven-plugin(版本是3.8.9)运行liquibase update之后,我发现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。
发布于 2021-01-04 23:44:03
MySQL实现其ALTER TABLE MODIFY COLUMN的方式就像删除旧列并添加新列一样。这不仅会丢失注释,还会丢失约束或主键或与“旧”列相关的任何其他内容。
我们没有将所有这些字段都添加到modifyDataType中,因为我们必须在其中包含的内容实际上是没有尽头的。相反,如果您在mysql上修改数据类型,则需要在单独的调用中重新设置备注、主键等。
我们为mysql输出了一个关于丢失主键/约束信息的警告,但我们只为非varchar数据类型显示它,以减少警告的数量。由于它会影响诸如可以在varchars上的注释之类的内容,因此可能值得删除检查中的非varchar部分。
https://stackoverflow.com/questions/65351367
复制相似问题