首页 > 解决方案 > Liquibase 更新值插入单引号

问题描述

我正在尝试将 Liquibase 从 3.3.1 升级到 3.10.3。现有变更集失败,因为正在更新的 varchar 值现在插入了额外的单引号。给定变更集中的以下语句:

<update tableName="foo_table">
    <column name="foo_id" type="VARCHAR(32)" value="'a'"/>
    <where>bar_id REGEXP 'A'</where>
</update>

Liquibase 似乎在 3.10.3 中添加了额外的单引号,以便数据库中的值现在使用单引号存储。从变更集中的 value 中删除单引号可以解决问题,但会更改我们许多变更集中的校验和。我想知道是否有任何可用的选项可以避免我们需要这样做。

标签: liquibase

解决方案


一种选择是创建一个新的变更日志(您可以保留旧的变更日志,在主变更日志中使用includeAll依次参阅两者)。在新的更改日志中,您只需在sql中创建更改。

这将允许您完全按照您想要的方式将更改编写为 sql,并且 liquibase 不必基于 xml 呈现 sql。


推荐阅读