绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
cube.js 集成cratedb 的尝试
2022-05-06 17:08:14

cratedb 提供了pg协议的兼容,我们可以直接使用pg client 连接,但是也不是完整实现pg 协议的 
以下是 cube.js 集成cratedb 的一些尝试

环境准备

  • docker-compose 文件

    主要是数据库环境的

 
version: "3"
services: 
  db:
    image: crate
    ports: 
    - "5432:5432"
    - "4200:4200"
  • cube.js pg 项目创建
cubejs create -d postgres cratedemo
  • 修改cube 环境变量
CUBEJS_DB_HOST=127.0.0.1
CUBEJS_DB_USER=crate
CUBEJS_DB_TYPE=postgres
CUBEJS_API_SECRET=c35c282663b0ba7918ad48740ab7bb326bcb733b97b0b5f434ba188c685b8dffbfb47c9ad37650643ff24ebffdc618255f967f60a6a50bd1d189692f14e76fe0

schema 生成的尝试

  • 启动cratedb
docker-compose up -d

效果 

 

  • 启动cube dev
yarn dev

错误信息: 

 


说明: 
主要是cube pg driver 在时区处理上使用了cratedb 不支持的命令代码如下: 

 


解决方法: 
临时先删除了set time zone 的处理

  • 重新启动dev
 
yarn dev

效果(很好,schema 可以出现了) 

 

  • 创建table(通过admin ui)
create table userapps (id int,appname text,appversion text,flags boolean);

 


刷新cube dev(创建的table schema 出现了) 

 

  • 生成schema

 

  • 插入数据
insert into userapps(id,appname,appversion,flags) values(1,'login','1.0',true);
insert into userapps(id,appname,appversion,flags) values(2,'logo','1.0',true);
insert into userapps(id,appname,appversion,flags) values(3,'market','1.0',true);
  • 简单数据报表生成

 

说明

以上就是一个简单cube.js 集成cube.js 的尝试,更好的做法是修改代码,调整为一个标准的driver(npm 包),同时按照官方的约定,好还是pr 
因为对于driver 的依赖是代码固定好的,如下: 

 

参考资料

https://github.com/cube-js/cube.js

分享好友

分享这个小栈给你的朋友们,一起进步吧。

CrateDB
创建时间:2022-02-25 14:30:06
CrateDB
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • itt0918
    专家
戳我,来吐槽~