Jenkins pipeline 是否可以在一个liquibase.properties文件中使用不同的参数?

Jenkins pipeline 是否可以在一个liquibase.properties文件中使用不同的参数?,jenkins-pipeline,liquibase,Jenkins Pipeline,Liquibase,嘿,我想知道是否可以在一个.properties文件中放置不同的.properties,这样我就不必为每个数据库创建一个seprate.praperties文件了 这里是我想做的,但它没有解释如何将这些上下文发送到.properties文件。而且它似乎也在使用seprate.properties文件。与中一样,它没有显示它在.properties文件中的外观。另一个好处是在这里,但它在.properties文件中没有这样做 假设我的.properties文件中包含以下内容: #liquibase

嘿,我想知道是否可以在一个.properties文件中放置不同的.properties,这样我就不必为每个数据库创建一个seprate.praperties文件了

这里是我想做的,但它没有解释如何将这些上下文发送到.properties文件。而且它似乎也在使用seprate.properties文件。与中一样,它没有显示它在.properties文件中的外观。另一个好处是在这里,但它在.properties文件中没有这样做

假设我的.properties文件中包含以下内容:

#liquibase.properties file content
url: jdbc:oracle:thin:@xxxxxxxx.str3.xxxxx.xxxxx:1511/xxxxxx.xxxxx.xxxxx.xxxxx
username: SEPRATE_1PEGA_BASEDA
password: XXXXXXXXXXXXX
referenceUrl: jdbc:oracle:thin:@xxxxxxxx.str2.xxxxx.xxxxx:1511/xxxxxx.xxxxx.xxxxx.xxxxx
referenceUsername: SEPRATE_1PEGA_BASEDB
referencePassword: YYYYYYYYYYYYYY
changeLogFile: diff_change.txt
diffTypes: tables, views, columns, indexes, foreignkeys, primarykeys, uniqueconstraints
我想发送一个参数来替换当前在.properties文件中硬编码的“str2”和“SEPRATE_1PEGA_BASEDB”变量。因此,我像这样编写.properties文件:

#liquibase.properties file content
url: jdbc:oracle:thin:@xxxxxxxx.str3.xxxxx.xxxxx:1511/xxxxxx.xxxxx.xxxxx.xxxxx
username: SEPRATE_1PEGA_BASEDA
password: XXXXXXXXXXXXX
referenceUrl: jdbc:oracle:thin:@xxxxxxxx.${liquibase.properties.str}.xxxxx.xxxxx:1511/xxxxxx.xxxxx.xxxxx.xxxxx
referenceUsername: ${liquibase.properties.un}
referencePassword: YYYYYYYYYYYYYY
changeLogFile: diff_change.txt
diffTypes: tables, views, columns, indexes, foreignkeys, primarykeys, uniqueconstraints
因此,此应用程序的CLI将类似于:

liquibase--str=str5--un=BobBarker diff


我的liquibase版本是
liquibase-3.6.2

,因此如果我正确理解您的需要,您希望替换属性文件中的占位符

有两件事你应该考虑:

  • changelog参数替换-我没有测试,但是如果您定义属性
    参数。testproperty=originalvalue
    ,然后将其置于命令行
    -Dtestproperty=overridenvalue
    中,它可能会替换您的值,您将能够在changelog中使用它
  • liquibase配置参数替换-liquibase没有这样做,因为它正在读取属性(method
    parsePropertiesFile
    last if/else),并试图用这些值填充java中的字段。因此,在调用liquibase命令或使用不同的属性文件之前,需要替换占位符

有人能帮我吗?在.properties文件中,你是在说类似的事情吗?changeLogFile:parameter.testproperty=diff_change2.txt,然后在CLI中,我将执行liquibase-Dtestproperty=diff_change3.txt diff。是否将diff_change2.txt更改为diff_change3.txt?执行此操作会告诉我意外值“-Dproperty.testproperty=something.txt”(选项必须以“---”开头)也许你的属性顺序错了。。。试试
java-Dproperty=something.txt
Yeah还是一样的东西:(