使用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文件的形式引用属性吗?
答案 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
文件。