如何在插入语句中使用 liquibase 参数?

Gre*_*reg 5 liquibase spring-boot liquibase-sql

Spring boot中有一个liquibase参数,比如说:

 spring.liquibase.parameters.val1 = value1
Run Code Online (Sandbox Code Playgroud)

我想在 sql 文件中使用这个参数,如下所示:

insert into table1 (name, value) values ("nameOfValue", ${val1});
Run Code Online (Sandbox Code Playgroud)

不幸的是,到目前为止唯一有效的组合是添加 3 个单引号 - '''${val1}'''(给出'value1')并substring删除第一个和最后一个单引号。

是否有更简洁的方法在 SQL 变更集文件的 INSERT 语句中使用 liquibase 参数?

dek*_*ard 3

看起来无论变更集的选择格式如何,您都不需要执行任何特殊操作即可从属性中插入参数。

以下所有内容都将产生有效的插入语句。

SQL 变更集

--changeset me:2
insert into test1 (id, name) values (1, 'name 1');
insert into test1 (id, name) values (3, '${val1}');
Run Code Online (Sandbox Code Playgroud)

YAML 变更集

- changeSet:
    id: 2
    author: me
    changes:
      - sql:
          endDelimiter: ;
          sql: >-
            insert into test1 (id, name) values (1, 'name 1');
            insert into test1 (id, name) values (3, '${val1}');
Run Code Online (Sandbox Code Playgroud)

XML 变更集:

<changeSet id="2" author="me">
    <sql endDelimiter=";">
        insert into test1 (id, name) values (1, 'name 1');
        insert into test1 (id, name) values (3, '${val1}');
    </sql>
</changeSet>
Run Code Online (Sandbox Code Playgroud)