首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hasura GraphQL `hdb_catalog` v1诉v2

Hasura GraphQL `hdb_catalog` v1诉v2
EN

Stack Overflow用户
提问于 2021-11-17 19:40:44
回答 2查看 304关注 0票数 1

我正在使用Hasura v2引擎(自我托管),它能够连接多个DB。我所希望的是能够通过为v2使用单独的元数据数据库来连接和维护到同一个DB的v1连接。

但在尝试之后,我未能做到这一点,因为很明显,Hasura v2仍然在连接的DB上使用hdb_catalog,而元数据DB上的hdb_catalog仍然在使用。

我看到连接DB hdb_catalog v2和v1的使用很少。

v1

v2

有人知道,如果这个文件甚至可以运行连接到同一个数据库的v1和v2 Hasura引擎,并且v2将元数据存储在单独的DB上,那么对于非元数据连接的DB对于v2来说,hdb_catalog有什么用途呢?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-22 17:03:23

我要提到的几件事:

  • 如果您将v2连接到具有v1连接的db,则v2将升级hdb_version,这将阻止v1启动。运行版本的v1仍将处理大量控制台错误,主要是由于事件日志表正在更改。
  • v2正在更改事件日志表的结构,因此它可能与v1 .
  • 不兼容。如果将v1连接到具有v2连接的db,由于上面提到的事件日志表不兼容,将无法启动。

因此,总的来说,虽然从技术上来说,将v1和v2连接到同一个db是“可能的”,但也有许多缺点,使得这一解决方案超出了纯粹的好奇心探索的范围。

但这并不意味着它在未来不会改变。

希望这会有帮助。

票数 0
EN

Stack Overflow用户

发布于 2021-11-18 08:43:34

Hasura V2仍然使用连接的DB上的hdb_catalog来运行其事件触发系统,因为它依赖于数据库本身定义的数据库触发器才能工作。因此,您将看到与事件触发器相关的表仍然在连接的DB的hdb_catalog中,而其余的元数据存储在元数据DB的hdb_catalog中。尽管如此,Hasura V2仅在事件触发器被定义时使用连接DB的hdb_catalog,否则它根本不与其交互,从而允许Hasura V1实例与同一DB一起工作。

总之,从Hasura v2.1.0 (撰写本文时最新的Hasura版本)开始,只有当Hasura V2实例没有配置事件触发器时,才有可能在Hasura V1实例旁边运行Hasura V2实例(有自己的专用元数据DB),这两个实例都连接到同一个DB

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70010557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档