如何使用spring boot和Liquibase changeset yaml文件

时间:2015-12-17 05:05:18

标签: java properties spring-boot liquibase

使用Liquibase管理数据库模式更改的Spring Boot Java应用程序以一个参数(例如dev,int)开始,指定它运行的环境。

有相应的属性文件(例如dev.properties,int.properties)定义了相应环境的属性。

所以在dev.properties中有例如。

url.info=http://dev.app.info

并且在tst.properties中有

url.info=http://tst.app.info

应用程序从与传入参数对应的文件中读取属性。

在每个环境中部署和启动应用程序时,此机制可以正常工作。使用相应属性的情况很多。

但是,它不适用于包含以下插入语句的Liquibase yaml变更集

- insert:
        tableName: result
        columns:
          - column:
              name: id
              value: a88b6708-5c9f-40c4-a3ca-41e7a6b57fc8
          - column:
              name: infoUrl
              value: ${url.info}

我在yaml文件中尝试过双引号和单引号,即" $ {url.info}"和' $ {url.info}'但数据库总是以字符串$ {url.info}

结束

是否还有其他符号我必须用于yaml文件中的属性? 要么 可以使用xml文件以liquibase yaml文件的形式引用属性吗?

1 个答案:

答案 0 :(得分:5)

在使用Spring Boot时,您可以使用其application.properties文件来定义change log parameters

任何名称以liquibase.parameters.开头的属性都可以在更改日志中引用。例如,属性liquibase.parameters.url.info可以在更改日志(YAML或XML)中引用为${url.info}

要为dev,QA,production等使用不同的配置文件,您可以使用配置文件和特定于配置文件的配置文件。例如,只有在application-dev.properties配置文件处于活动状态时才会加载dev文件。