微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Liquibase 如何逃避更改日志属性替换

如何解决Liquibase 如何逃避更改日志属性替换

是否有可能逃脱 Liquibase Changelog Property Substitution

这是我的变更集:

<changeSet author="me" id="changeSetone">
    <sql>
        INSERT INTO TABLE_NAME (VALUE,DESCRIPTION) VALUES (
            '${ENVIRONMENT_VARIABLE}/some/path/','describe nothing');
    </sql>
</changeSet>

结果,(ENVIRONMENT_VARIABLE = "C:/foo"):

+-----------------+----------------+
|VALUE            |DESCRIPTION     |
+-----------------+----------------+
|C:/foo/some/path/|describe nothing|
+-----------------+----------------+

但我不想用 Liquibase 替换这个占位符,所以我的结果应该是这样的:

+----------------------------------+----------------+
|VALUE                             |DESCRIPTION     |
+----------------------------------+----------------+
|${ENVIRONMENT_VARIABLE}/some/path/|describe nothing|
+----------------------------------+----------------+

这可能吗?

解决方法

您寻求的是黑客攻击或逃脱方式(例如:\${ENVIRONMENT_VARIABLE}$${ENVIRONMENT_VARIABLE})。

我不知道这个特定问题是否与此有关:https://github.com/liquibase/liquibase/issues/1023 但是在有人修复它之前,您将不得不使用这个很棒的 hack™:

<property name="dollar" value="$" />

<update tableName="THE_TABLE">
  <column name="THE_COLUMN" value="${dollar}{ENVIRONMENT_VARIABLE}" />
</update>

然后,当liquibase看到${dollar}{ENVIRONMENT_VARIABLE}时,应该用${ENVIRONMENT_VARIABLE}替换它。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。