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