首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在liquibase中更新列的类型时保留备注?

问如何在liquibase中更新列的类型时保留备注?
EN

Stack Overflow用户
提问于 2020-12-18 11:18:20
回答 1查看 105关注 0票数 1

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

下面是我的代码:

代码语言:javascript
复制
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。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-04 23:44:03

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

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

我们为mysql输出了一个关于丢失主键/约束信息的警告,但我们只为非varchar数据类型显示它,以减少警告的数量。由于它会影响诸如可以在varchars上的注释之类的内容,因此可能值得删除检查中的非varchar部分。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65351367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档