使用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文件中引用属性?
使用Spring Boot时,可以使用其application.properties
文件来定义更改日志参数。
任何以名称开头的属性liquibase.parameters.
都可以在变更日志中引用。例如,liquibase.parameters.url.info
可以${url.info}
在您的变更日志中引用该属性(YAML或XML)。
要将不同的配置文件用于开发,质量检查,生产等,可以使用配置文件和特定于配置文件的配置文件。例如,application-dev.properties
仅在dev
配置文件处于活动状态时才加载文件。