开发一个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