【问题标题】:Liquibase Snowflake integration - specifically: generateChangeLogLiquibase Snowflake 集成 - 特别是:generateChangeLog
【发布时间】:2020-02-16 06:53:52
【问题描述】:

调用时:mvn liquibase:generateChangeLog 我得到这个错误:

*Object 'DATAWAREHOUSE_DB_DEV.INFORMATION_SCHEMA.CONSTRAINTS' does not exist or not authorized.* 

有没有人找到解决这个问题的方法?似乎 Snowflake 有一个视图 DATAWAREHOUSE_DB_DEV.INFORMATION_SCHEMA.TABLE_CONSTRAINTS 但 Snowflake 不支持同义词,您无法在 INFORMATION_SCHEMA 中创建任何新视图(以匹配 liquibase 正在寻找的内容)。

【问题讨论】:

  • 你使用的是什么版本的 Liquibase 和雪花扩展?
  • 我正在使用最新的插件:org.liquibaseliquibase-maven-plugin3.8.6 我' m 不使用雪花扩展。基本的 mvn liquibase:update 命令似乎工作正常。只有 generateChangeLog 不是。
  • 解决这个问题的最佳方法是使用 Liquibase Snowflake 扩展。一般来说,除非新的数据库平台几乎与现有平台一样工作,否则需要进行一些定制。您应该尝试一下 Liquibase 的雪花扩展。见liquibase.jira.com/wiki/spaces/CONTRIB/pages/113372651/…

标签: liquibase snowflake-cloud-data-platform


【解决方案1】:

在我看来,这像是 Liquibase 版本问题或类似问题。

如果您确实需要解决方法,您能否在不同的架构中创建一个适用于您的解决方案的视图?

类似这样:

create view public.constraints(constraint_catalog, constraint_schema, constraint_name) as (
      -- Start at the top of the hierarchy ...
      select constraint_catalog, constraint_schema, constraint_name
        from information_schema.table_constraints
  );

select * from public.constraints;

【讨论】:

  • 这就是我想做的。我可以毫无问题地创建视图: create view "DATAWAREHOUSE_DB_DEV"."PUBLIC"."CONSTRAINTS" as select * from "DATAWAREHOUSE_DB_DEV"."INFORMATION_SCHEMA"."TABLE_CONSTRAINTS";但是有没有办法将 Liquibase 配置为使用这个新视图而不是它试图找到的那个?
  • 您找到解决方案了吗?
猜你喜欢
  • 2018-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-10
  • 2014-08-29
  • 1970-01-01
相关资源
最近更新 更多