在liquibase中,“作者”通常在变更集中硬编码。但是我们要将其设置为运行变更集的数据库用户。因此,我们将在开发人员中使用作者dev_schema
,在生产中使用作者prod_schema
,依此类推。 db用户是未知的,因此我们希望在运行时通过liquibase连接字符串的--username选项自动设置。
./liquibase.bat --driver=oracle.jdbc.OracleDriver --changeLogFile="changelog.xml" --url="jdbc:oracle:thin:@localhost:1521:xe" --username=dev_schema ...
在changeset标记中,我将属性author设置为${username}
,但是没有将其提取。
<changeSet author="${username}" ...
还尝试设置有效的环境变量,但是随后您必须两次设置相同的用户名。如果有人使用其他用户名,还存在由于校验和失败而导致liquibase无法执行的风险。
有可能吗?或者,可以吗?
答案 0 :(得分:0)
我猜用户名是liquibase的系统参数,并且在changelog中不用于替换占位符。尝试指定诸如java param -Dusername=<your user>
之类的参数,让我们看看会发生什么。