如何使用 liquibase gradle 插件将动态模式名​​称传递给 Liquibase 变更集并在循环中 运行 它们

How to pass dynamic schema names to Liquibase changeset and run them in a loop using liquibase gradle plugin

我们是 liquibase 的新手,正在尝试像这样动态创建模式

<property name="schemaName" value="temp2"/>
<changeSet author="abcd" id="1">
    <sql dbms="postgresql" endDelimiter=";">
        CREATE SCHEMA $(schemaName)
    </sql>
</changeSet>

但是当我们尝试执行

时出现了这个异常
    Unexpected error running Liquibase: ERROR: syntax error at or near "$"
  Position: 15 [Failed SQL: (0) CREATE SCHEMA $(schemaName)]
liquibase.exception.MigrationFailedException: Migration failed for change set src/main/db/changelog2.xml::1::aditya:
     Reason: liquibase.exception.DatabaseException: ERROR: syntax error at or near "$"
  Position: 15 [Failed SQL: (0) CREATE SCHEMA $(schemaName)]
        at liquibase.changelog.ChangeSet.execute(ChangeSet.java:646)
        at liquibase.changelog.visitor.UpdateVisitor.visit(UpdateVisitor.java:53)
        at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:83)
        at liquibase.Liquibase.update(Liquibase.java:202)
        at liquibase.Liquibase.update(Liquibase.java:179)
        at liquibase.integration.commandline.Main.doMigration(Main.java:1223)
        at liquibase.integration.commandline.Main.run(Main.java:209)
        at liquibase.integration.commandline.Main.main(Main.java:132)

如果社区能为我们指出正确的方向,那将是非常有帮助的

您可以在更改日志中使用可替换参数 - 这些称为 changelog parameters

语法是在变更日志中使用 ${parameterName}(注意花括号而不是圆括号)。