开发一个cube.js cratedb driver

核心还是参考了官方的说明以及pg,因为cratedb driver 核心就是一个关于时间处理的

核心代码

删除以下

// await client.query(`SET TIME ZONE '${this.config.storeTimezone || 'UTC'}'`);

包装处理

为了方便,自定义了方言(参考pg 的同时集成在一起)

使用

.env 文件

CUBEJS_DB_HOST=localhost
CUBEJS_DB_NAME=doc
CUBEJS_DB_USER=crate
CUBEJS_DB_PASS=
CUBEJS_WEB_SOCKETS=true
CUBEJS_DEV_MODE=true
CUBEJS_DB_TYPE=cratedb

cube.js 文件

const {CrateDBDriver,CrateDBQuery} = require("@dalongrong/cratedb-driver")
module.exports = {
    dialectFactory: (dataSource) => {
        // need config  datasource  for multitenant env
        return CrateDBQuery
    },
    dbType: ({ dataSource } = {}) => {
        return "cratedb"
    },
    driverFactory: ({ dataSource } = {}) => {
        return new CrateDBDriver({})
    }
}

说明

具体代码参考github

参考资料

https://github.com/rongfengliang/cubejs-cratedb-driver
https://github.com/cube-js/cube.js/blob/master/CONTRIBUTING.md
https://www.cnblogs.com/rongfengliang/p/14369653.html

posted on 2021-03-26 23:16  荣锋亮  阅读(106)  评论(0编辑  收藏  举报

导航