Eggjs 之 Sequelize 多数据源配置

config.${env}.js

config.sequelize = {
	datasources: [
		// 默认的model目录
		{
			// 加载所有的model到app.model&ctx.model
			delegate: 'model',
			// 要加载的model目录`app/model/*.js`
			baseDir: 'model',
			// 指明数据库类型
			dialect: 'mysql',
			// 数据库配置
			database: 'local_db',
			host: 'localhost',
			port: '3306',
			username: 'root',
			password: 'root',
			// 时间差
			timezone: 'Asia/Shanghai',
			define: {
				// 禁止自动添加createdAt和updatedAt字段
				timestamps: false,
			},
		},	
		// 自定义的model
		{
			// 加载所有的model到app.otherModel&ctx.otherModel
			delegate: 'otherModel',
			// 要加载的model目录`app/models/other/*.js`
			baseDir: 'models/other',
			// 指明数据库类型
			dialect: 'mysql',
			// 数据库配置
			database: 'local_other_db',
			host: 'localhost',
			port: '3306',
			username: 'root',
			password: 'root',
			// 时间差
			timezone: 'Asia/Shanghai',
			define: {
				// 禁止自动添加createdAt和updatedAt字段
				timestamps: false,
			},
		},	
	],
};

定义 model

在 app/model/ 和 app/models/other/ 分别定义所需的 model,例如:可以同时定义 user.js 对应不同数据源中的 user 表。

调用 model

await this.app.model.User.findAll({ raw: true });
await this.app.otherModel.User.findAll({ raw: true });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值