sequelize 连接多个数据库生成多个实例
日期: 2019-03-22 浏览量: 4321
seuqelize 连接多个库,生成多个实例。
1. 配置config.json
{ "db1":{ "database":"db1", "user":"root", "password":"123456", "host":"123.56.12.1", "port":"3306" }, "db2":{ "database":"db2", "user":"root", "password":"123456", "host":"123.56.12.2", "port":"3306" } }
2. 读取配置文件,连接数据库,生成数据库实例。 创建mysql.js文件
const Sequelize = require('sequelize'); const config = require('../../configs'); //配置文件 数据对象 //连接数据库 配置多库,多个sequelize实例 const createMysql = (config) => { let db = {}; for (let i in config) { db[i] = new Sequelize(config[i].database, config[i].user, config[i].password, { dialect: 'mysql', host: config[i].host, port: config[i].port, pool: { max: 5, min: 0, acquire: 30000, idle: 10000 }, timezone: '+08:00' }) } return db; } module.exports = createMysql(config.mysql);
3. 建立数据模型 (请看上一篇文章),建立实例及模型关系。创建 model.js文件
const sequelize = require('./mysql'); //建立连接的数据库实例 db const DataTypes = require('sequelize'); const config = require('../../configs'); //配置文件 /*** * 支持多库 * model 表名 必传 * db 库名 默认配置文件的第一个库名 */ module.exports = (model, db=false)=>{ try{ //默认读取配置文件第一个库 if(!db){ let mysqlKeys = Object.keys(config.mysql); db = mysqlKeys[0]; } let modelFile = require(`./models/${db}/${model}`); let modelData = modelFile(sequelize[db], DataTypes) return new Base(modelData); }catch(err){ console.log(`数据库错误:${err}`) } }
4.调用方法
const userDa = require('../../lib/model')('user', 'db1'); // 表名 库名
人活着,其实就是一种心态,你若觉得快乐,幸福无处不在;你为自己悲鸣,世界必将灰暗。
阅读排行
最新文章
联系方式
- 邮箱:m18811126599@163.com
- QQ:896956692