Hasura GraphQL 内部表结构

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

hdb_table

这个表包含了所有通过web界面或者cli工具管理的表以及视图

列的定义

  • table_schema: 表或者视图的schmema
  • table_name: 表或者视图的名称
  • is_system_defined: 标示是否是系统表
    参考例子

hdb_relationship

定义表的约束以及手工添加的关系

列的定义

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

hdb_permission

定于访问权限信息的

列的定义

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

说明

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

参考资料

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

posted on 2018-11-13 19:20  荣锋亮  阅读(992)  评论(0编辑  收藏  举报

导航