0

我们是 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)

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

4

1 回答 1

1

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

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

于 2019-11-26T19:36:58.337 回答