如何解决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 举报,一经查实,本站将立刻删除。