/** * 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 }