cube.js 官方有描述关于driver 开发的说明,以下是开发一个简单的cockroachdb 驱动
generic-pool
其他语言包可以借鉴release
确保资源的释放因为cockroachdb支持基于pg 协议的处理,所以可以直接使用pg协议,为了简单代码,我们实现BaseDriver 以及BaseQuery
代码都复用了pg 的
{
"name": "@cubejs-backend/cockroach-driver",
"description": "Cube.js Cockroach database driver",
"author": "Cube Dev, Inc.",
"version": "0.26.38",
"repository": {
"type": "git",
"url": "https://github.com/cube-js/cube.js.git",
"directory": "packages/cubejs-cockroach-driver"
},
"engines": {
"node": ">=10.8.0"
},
"main": "driver/CockroachDriver.js",
"typings": "driver/index.d.ts",
"scripts": {
"lint": "eslint **/*.js"
},
"dependencies": {
"@cubejs-backend/schema-compiler": "^0.26.35",
"@cubejs-backend/query-orchestrator": "^0.26.38",
"@types/pg": "^7.14.5",
"moment": "^2.24.0",
"pg": "^8.2.1"
},
"license": "Apache-2.0",
"devDependencies": {
"eslint": "^6.8.0",
"eslint-config-airbnb-base": "^13.1.0",
"eslint-plugin-import": "^2.16.0",
"eslint-plugin-node": "^5.2.1"
}
}
CockroachDriver.js:
代码直接copy 的pg的就是进行了名称的修改
添加了
static dialectClass() {
return CockroachQuery;
}
CockroachQuery.js copy 了pg 的进行名称的修改
cockroach: ‘@cubejs-backend/cockroach-driver‘,
};
可以使用yarn 的link 模式进行测试
.env 与其他db driver 是一样的
我以前也写过关于驱动开发的说明,目前官方不太方便的是需要以及注册deps,否则就需要自己实现一个
dialectFactory 还是比较费事的
https://github.com/cube-js/cube.js/blob/master/CONTRIBUTING.md
https://www.cnblogs.com/rongfengliang/p/14369653.html
原文:https://www.cnblogs.com/rongfengliang/p/14457467.html