Hasura GraphQL 内部表结构

Hasura 使用pg 数据库存储引擎的元数据信息,在hdb_catalog schema 下面,是在初始化的时候生成的
对于表的管理、权限的信息存储都在这个schema下

hdb_table

这个表包含了所有通过web界面或者cli工具管理的表以及视图
Hasura GraphQL  内部表结构_Hasura
列的定义

  • table_schema: 表或者视图的schmema
  • table_name: 表或者视图的名称
  • is_system_defined: 标示是否是系统表
    参考例子
    Hasura GraphQL  内部表结构_Hasura _02

hdb_relationship

定义表的约束以及手工添加的关系
Hasura GraphQL  内部表结构_Hasura _03
列的定义

  • table_schema: schema
  • table_name: 表或者视图的名称
  • rel_name: 关系的名称
  • rel_type: 关系的类型,object 或者array
  • rel_def: 关系的定义,驻主外建约束以及自定义管理的配置,是一个json对象
  • comment: 备注
  • is_system_defined: 标示是否是系统定义,区分引擎以及人工操作
    参考
    Hasura GraphQL  内部表结构_Hasura _04

hdb_permission

定于访问权限信息的
Hasura GraphQL  内部表结构_Hasura _05
列的定义

  • table_schema: schema
  • table_name: 表名称
  • role_name: 角色名称
  • perm_type: 权限类型 (insert/select/update/delete).
  • perm_def: 权限的具体操作定义(基于json)
  • comment: 备注信息
  • is_system_defined: 区分是引擎的操作还是用户自己的操作
    参考
    Hasura GraphQL  内部表结构_Hasura _06

说明

以上支持老版本的说明,文档来自官方文档,实际上,还有event 的定义,包含了日志以及状态,同时类似也包含一些视图,还有一种查询
模版表,暂时界面没有发现用途,实际上还是挺有用的,而且Hasura 迭代还是比较快的,后期还会有变动。
Hasura GraphQL  内部表结构_Hasura _07

参考资料

https://docs.hasura.io/1.0/graphql/manual/engine-internals/index.html