hasura graphql-engine + plv8 集成
hasura graphql-engine 是一款很不错的基于pg 的graphql 引擎,plv8 是pg 的一个扩展,我们可以使用js 编写
函数 ,触发器,而且对于es6 的语法也有比较完备的支持
环境准备
plv8 已经构建好了镜像包含了2.3.13 的版本,测试使用的2.3.12
- docker-compose文件
version: '3.6'
services:
postgres:
image: dalongrong/plv8:2.3.12
ports:
- "5432:5432"
environment:
- "POSTGRES_PASSWORD=dalong"
graphql-engine:
image: hasura/graphql-engine:v1.0.0-beta.9
ports:
- "8080:8080"
depends_on:
- "postgres"
environment:
HASURA_GRAPHQL_DATABASE_URL: postgres://postgres:dalong@postgres:5432/postgres
HASURA_GRAPHQL_ENABLE_CONSOLE: "true" # set to "false" to disable console
HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log
启动&&测试
- 启动
docker-compose up -d
- plv8 扩展配置
包含扩展启用以及简单函数
CREATE EXTENSION plv8;
CREATE TYPE rec AS (i integer, t text);
CREATE or replace FUNCTION set_of_records() RETURNS SETOF rec AS
$$
var results = [];
for(var index=1; index<1000000;index++) {
plv8.return_next( { "i": index, "t": "a"+index } );
}
$$
LANGUAGE plv8;
- 效果

- 集成使用
通过视图 
- schema 效果

- 查询

说明
以上是一个简单的集成,实际上我们可以基于plv8 强大的js 能力,很灵活的扩展hasura graphql-engine ,同时plv8 对于
es6 的支持也是很全的,同时hasura提供的自定义函数查询也可以与plv集成起来(通过plv8 生成处理数据,然后返回),如下 
参考查询 
参考资料
https://github.com/plv8/plv8
https://github.com/hasura/graphql-engine
https://github.com/rongfengliang/plv8-docker
hasura graphql-engine + plv8 集成的更多相关文章
- hasura graphql server 集成gatsby
hasura graphql server 社区基于gatsby-source-graphql 开发了gatsby-postgres-graphql 插件, 可以快速的开发丰富的网站 基本使用 安装h ...
- 通过torodb && hasura graphql 让mongodb 快速支持graphql api
torodb 可以方便的将mongo 数据实时同步到pg,hasura graphql 可以方便的将pg 数据暴露为graphql api,集成在一起真的很方便 环境准备 docker-compose ...
- hasura graphql server event trigger 试用
hasura graphql server 是一个很不错的graphql 引擎,当前版本已经支持event triiger 了 使用此功能我们可以方便的集成webhook功能,实现灵活,稳定,快捷的消 ...
- hasura graphql subscriptions 使用
subscriptions graphql 的一项实时数据推送的功能,还是很方便的,自己在直接使用subscriptions-transport-ws npm 包 的时候运行一直有错误(主要是依赖 ...
- 【转载】Python与ArcGIS Engine的集成
本文转载自Fransico<Python与ArcGIS Engine的集成> 1 在Python中调用AO类库 1.1 准备工作 本文所使用环境:ArcGIS 10.0.Python ...
- Hasura GraphQL schema 生成是如何工作的
不像大部分的graphql 引擎,使用标准的graphql 规范的处理模型,Hasura graphql 不存在resolver 的概念(实际上是有的,只是转换为了sql语法) 以下是Hasura g ...
- hasura graphql auth-webhook api 说明
hasura graphql 生产的使用是推荐使用webhook 进行角色访问控制的,官方同时提供了一个nodejs 的简单demo 代码 git clone https://github.com/h ...
- hasura graphql pg 自定义函数的使用
hasura graphql 的安装可以参考相关项目 创建函数 数据表创建 CREATE TABLE sql_function_table ( id SERIAL PRIMARY KEY, inp ...
- hasura graphql server 集成gitlab
默认官方是提供了gitlab 集成的demo的,但是因为gitlab 一些版本的问题, 跑起来总有问题,所以查找相关资料测试了一个可以运行的版本 项目使用docker-compose 运行 参考 ht ...
随机推荐
- 【08月07日】A股滚动市盈率PE最低排名
仅根据最新的市盈率计算公式进行排名,无法对未来的业绩做出预测. 方大集团(SZ000055) - 滚动市盈率PE:2.32 - 滚动市净率PB:1.04 - 滚动年化股息收益率:4.37% - 建筑 ...
- LInux 学习笔记系列
1.Linux 就该这么学的笔记系列
- javascript参数化拼接字符串两种方法
javascript如果直接使用字符串+的话,会被大量单引号搞晕,可以有两种比较简单的方法使用参数化拼接. 方式一,传统js //示例:StringFormat("abc{0}def&quo ...
- Mysql 工具mysqlbinlog
[1]mysqlbinlog工具 在Windows环境下,安装完成Mysql后,在安装目录bin下会存在mysqlbinlog.exe应用程序. binlog是二进制内容文件,人类是无法直视的.而my ...
- SFTP 定时任务下载
1.上传 winscp.exe /console /command "option batch continue" "option confirm off" & ...
- KVM 学习笔记
查看虚拟化环境 (1)查看虚拟机环境 (2)查看kvm模块支持 (3)查看虚拟工具版本 (4)查看网桥
- 微信小程序报thirdScriptError Cannot read property 'setData' of undefined
用onLoad: function (options) {} 加载页面缓存的数据的时候报错 修改为
- Docker 快速安装&搭建 Mysql 环境
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- C#反射_两合并更新实体
#region 更新实体模型 /// <summary> /// 更新实体模型 /// </summary> /// <typeparam name="T&qu ...
- 记录前端开发vue常见问题,不断更新
1.点击刷新当天组件 1.可以在query中添加一个时间戳,缺点就是不好看 2.加一个重定向页面redirect页面,然后在beforecreate时this.$router.replace原路径 2 ...