Files
bamboo/extend/mysql/index.js
T
2022-05-31 08:34:53 +08:00

85 lines
2.0 KiB
JavaScript

/**
* mysql/sequelize
*
* 参考文档:
* https://www.sequelize.com.cn/
*/
const config = require("./config")
const Sequelize = require("sequelize");
module.exports = async (app) => {
const {
database,
username,
password,
options,
} = config
const sequelize = new Sequelize(database, username, password, {
...options,
operatorsAliases,
});
try {
await sequelize.authenticate();
console.log('数据库连接成功');
} catch (error) {
console.error('数据库连接失败', error);
}
app.sql = sequelize
//等待所有插件载入完成后,自动更新数据库字段
//把所有模型的md5值存入到redis里面去,哪个文件的md5有变动就更新哪个表的字段.
//todo
app.willReadyList.push(()=>{
})
}
//定义别名
function operatorsAliases() {
const Op = Sequelize.Op;
//操作符别名
const operatorsAliases = {
$eq: Op.eq,
$ne: Op.ne,
$gte: Op.gte,
$gt: Op.gt,
$lte: Op.lte,
$lt: Op.lt,
$not: Op.not,
$in: Op.in,
$notIn: Op.notIn,
$is: Op.is,
$like: Op.like,
$notLike: Op.notLike,
$iLike: Op.iLike,
$notILike: Op.notILike,
$regexp: Op.regexp,
$notRegexp: Op.notRegexp,
$iRegexp: Op.iRegexp,
$notIRegexp: Op.notIRegexp,
$between: Op.between,
$notBetween: Op.notBetween,
$overlap: Op.overlap,
$contains: Op.contains,
$contained: Op.contained,
$adjacent: Op.adjacent,
$strictLeft: Op.strictLeft,
$strictRight: Op.strictRight,
$noExtendRight: Op.noExtendRight,
$noExtendLeft: Op.noExtendLeft,
$substring: Op.substring,
$startsWith: Op.startsWith,
$endsWith: Op.endsWith,
$and: Op.and,
$or: Op.or,
$any: Op.any,
$all: Op.all,
$values: Op.values,
$col: Op.col
};
return operatorsAliases
}