【问题标题】:ERROR: syntax error at or near "$" Position: 40 [Failed SQL: (0) SET SEARCH_PATH TO <SchemaName>, $user, public]错误:“$”位置或附近的语法错误:40 [失败的 SQL:(0)SET SEARCH_PATH TO <SchemaName>,$user,public]
【发布时间】:2022-06-17 16:36:09
【问题描述】:

我们正在使用 liquibase 来部署数据仓库。我们正面临 liquibase 的默认模式名称属性的问题。当我们将相同的值设置为我们希望在其中完成部署的架构时,它会给出以下错误 -

原因:liquibase.exception.DatabaseException: ERROR: 语法错误 在“$”位置或附近位置:40 [失败的 SQL:(0) SET SEARCH_PATH TO , $user, public]

$user 应该用引号引起来,因此问题正在发生。在使用 liquibase 部署数据库时,是否有人也面临与 Redshift 类似的问题?

https://docs.aws.amazon.com/redshift/latest/dg/r_search_path.html

【问题讨论】:

    标签: amazon-redshift liquibase


    【解决方案1】:

    请在此处跟踪此问题:https://github.com/liquibase/liquibase/issues/2928 谢谢

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    【解决方案2】:

    不使用 --defaultSchemaName 参数,而是使用 --liquibase-schema-name 参数来设置 liquibase 表的架构。

    【讨论】:

    • 该属性已设置,我们对该属性没有任何问题。这是我们希望部署变更集的架构。
    【解决方案3】:

    看起来问题与 Liquibase 4.11.0 版本有关,请使用 Liquibase v4.10.0

    【讨论】:

      【解决方案4】:

      解决方法

      在数据库中执行类似的东西 ALTER USER user_name SET search_path to 'public'

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-13
        • 1970-01-01
        • 1970-01-01
        • 2016-02-16
        • 1970-01-01
        相关资源
        最近更新 更多