cube.js mssql driver 问题

目前mssql driver 运行的时候会有以下错误
The multi-part identifier "columns.data_type" could not be bound

原因

需要指定别名

解决方法

MSSqlDriver 重写informationSchemaQuery 方法,我已经pr了

  • informationSchemaQuery 方法
informationSchemaQuery() {
    const q = `SELECT columns.column_name as ${this.quoteIdentifier('column_name')},
    columns.table_name as ${this.quoteIdentifier('table_name')},
    columns.table_schema as ${this.quoteIdentifier('table_schema')},
    columns.data_type as ${this.quoteIdentifier('data_type')}
FROM information_schema.columns  columns
WHERE columns.table_schema NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys')`;
    console.log(q);
    return q;
  }

参考源码

因为官方暂时还没有进行合并,如果需要测试mssql可以使用我已经提交的一个npm包

  • 参考使用

.env 配置
这个和官方文档一样 https://cube.dev/docs/reference/environment-variables
cube.js 文件

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

说明

npm 包名称@dalongrong/mymssql-driver 已经发布npm 官方了,可以直接使用

参考资料

https://github.com/tediousjs/node-mssql#readme
https://github.com/cube-js/cube.js/pull/2521
https://cube.dev/docs/reference/environment-variables

posted on   荣锋亮  阅读(99)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2019-04-09 使用fpm 方便快速生成postgresql extension分发包
2014-04-09 web性能优化

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示