我正在尝试将Liquibase从2.0.5升级到3.2.2。Liquibase 3.2.2已将MySQL的布尔类型实现从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)
| 归档时间: |
|
| 查看次数: |
708 次 |
| 最近记录: |