使用SQLcl执行Liquibase变更集时如何直接传递参数替代属性文件
使用SQLcl+Liquibase直接传递变更集参数的方法
我正在使用SQLcl搭配Liquibase向Oracle数据库部署变更,现有如下YAML格式的变更集(用于编译utils_pkg的包规范):
- changeSet: id: ${changesetOwner}.utils_pkg_s author: def_author runOnChange: true changes: - sqlFile: path: utils_pkg_s.sql splitStatements: true endDelimiter: / relativeToChangelogFile: true
目前我需要动态生成属性文件来传递${changesetOwner}的值,再通过以下命令执行Liquibase更新:
lb update -default-schema-name ORDERS -changelog-file main.yaml -defaults-file deployment.properties -liquibase-schema-name DEPLOYMENT
这种方法可行但生成属性文件较为繁琐,请问是否可以通过类似SQLcl中define变量的方式直接传递参数?例如在SQL脚本中先定义变量再执行更新命令,让变更集能够获取到changesetOwner的值,示例如下:
define changesetOwner = ORDERS lb update -default-schema-name ORDERS -changelog-file main.yaml -liquibase-schema-name DEPLOYMENT
内容的提问来源于stack exchange,提问作者Roman
相关产品推荐
相关产品推荐

