gpt4 book ai didi

liquibase - 处理将 MySQL bool 类型从 tinyint 更改为 bit 的 liquibase 升级

转载 作者:行者123 更新时间:2023-12-04 20:06:02 25 4
gpt4 key购买 nike

我正在尝试将 Liquibase 从 2.0.5 升级到 3.2.2。 Liquibase 3.2.2 已将 MySQL 的 bool 类型实现从 tinytint(1) 更改为 bit(1)。这打破了我们的许多历史变更集,例如在我们像这样设置默认值的地方:default="1"(失败并出现错误数据截断:MySQL 5.6.16 中的列数据太长)。

我正在寻找一种更简单的方法来处理它,以便我们可以升级,而不是重写/修复大量变更集历史记录。我不反对告诉 Liquibase 继续为 mysql 使用 tinyint(1)。我在用户论坛中看到关于扩展 liquibase.database.typeconversion.core.MySQLTypeConverter 以完成它的注释,但该机制似乎在 3.2.2 中不可用。

知道我如何告诉 Liquibase 3.2.2 继续使用 tinyint(1) 吗?如果做不到这一点,关于如何在不重写变更集历史记录的情况下处理这个问题的任何其他想法?

最佳答案

在 3.2.2 中,TypeConverterLogic 已转移到特定于类型的类。所以你可以覆盖 liquibase.datatype.core.BooleanType 和 toDatabaseDataType() 方法来返回 TINYINT(1) 而不是 BIT(1)

关于liquibase - 处理将 MySQL bool 类型从 tinyint 更改为 bit 的 liquibase 升级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25873926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com