【egg-sequelize 兼容达梦数据库】
根据这个配置,后续如果有其他的数据库应该也是可以自己实现一个sequelize版本去兼容。先上干货,后续有过程前因后果。
·
egg-sequelize 兼容达梦数据库
1. 兼容处理
先上干货,后续有过程前因后果
- 新增依赖 dmdb 和 sequelize-dm8
yarn add dmdb sequelize-dm8 --save
- 配置config.js
sequelize 配置 Sequelize 对象
sequelize: {
Sequelize: require('sequelize-dm8'),
datasources: [{
dialect: 'dmdb',
}]
}
2.相关依赖
- dmdb
此包为Node.js连接达梦8数据库的原生驱动,API详见安装目录下的《DM8程序员手册》 - sequelize-dm8 github
Sequelize v5 支持达梦数据库 DM8 封装 使用方法如下:
dialect 的配置值为: dmdb。
npm install --save dmdb sequelize-dm8
const { Sequelize } = require('sequelize-dm8');
exports.dmdb = {
};
const rows = await this.app.dmdb.query('SELECT * FROM TABLE1 WHERE A=? and B=?',['x','y']);
3.过程思路
- 背景
国产化替代,之前服务是用egg.js写的,通过egg-sequelize进行数据库操作。
sequelize 原生支持 Oracle, Postgres, MySQL, MariaDB, SQLite,SQL Server。 - 解决思路
- 询问 DeepSeek+Kimi, 给出通过sequelize-dm8去兼容,没有跑通;
- 查看egg.js,egg-sequelize,sequelize官方问题,没有找到对应方法;
- 查看egg-sequelize源码发现存在配置项可以解决问题;
egg-sequelize/lib/loader.js
const config = app.config.sequelize;
// support customize sequelize
app.Sequelize = config.Sequelize || require('sequelize');
根据这个配置,后续如果有其他的数据库应该也是可以自己实现一个sequelize版本去兼容

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)