如何使用 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}
(注意花括号而不是圆括号)。
我们是 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}
(注意花括号而不是圆括号)。