zoukankan      html  css  js  c++  java
  • cube.js schema 定义多datasource 说明

    实际上我以前有写过类似的使用比较简单,以下明确说明下

    参考cube schema 定义

    const {MySqlDriver,MySqlQuery} = require("mymysql-cubejs-driver")
    const {DremioDriver,DremioQuery} = require("mydremio-cubejs-driver")
    module.exports = {
        // 此方法对于自定义driver 还是比较重要的,会暴露一个dbType的属性信息
        dialectFactory: (context) => {
            if(context.dbType==="mymysql") {
                return MySqlQuery
            }
            if(context.dbType==="mydremio"){
                return DremioQuery
            }
     
        },
        dbType: ({ dataSource } = {}) => {
            console.log("dbTyped",dataSource)
            if(dataSource==="web") {
                return "mymysql"
            }
            if(dataSource==="dremio"){
                return "mydremio"
            }
            // default 很重要,不然你的代码肯定会有问题的,通过代码也可以看到,而且官方文档也有说明
            if(dataSource==="default"){
                return "mymysql"
            }
        },
        driverFactory: ({dataSource}={}) => {
            console.log("driverFactory",dataSource)
            if(dataSource==="web"){
                return new MySqlDriver({})
            }
            if(dataSource==="dremio"){
                return new DremioDriver({
                })
            }
            // default 很重要,不然你的代码肯定会有问题的,通过代码也可以看到,而且官方文档也有说明
            if(dataSource==="default"){
                return new MySqlDriver({
                })
            }
        }
    };

    说明

    以上代码使用了自定义driver,遵循了cube.js 自定义driver 的开发模式<name>-cubejs-driver
    同时上边的default 也是一个比较重要的点,我们需要添加default 实现,dialectFactory 对于我们自己开发的
    driver 是一个比较重要的,说明以前开发的dremio 以及mysql,cratedb 的driver 我也已经修改为遵循cube.js
    标准的名称了(如果driver 提供了静态的dialectClass 也就不是必须的了。。。)

    参考资料

    https://cube.dev/docs/schema/reference/cube#data-source
    https://cube.dev/docs/multitenancy-setup#multiple-schema-and-drivers

  • 相关阅读:
    centos7下查看端口是否被占用
    centos7通过yum安装redis
    centos7下mysql远程连接
    centos7通过yum安装JDK1.8
    Jwt系列2:使用
    Jwt系列1:简介
    Python基础语法
    排序
    利用MultipartFile来进行文件上传
    服务器端跳转和客户端跳转
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/15574940.html
Copyright © 2011-2022 走看看