Sequelize多个数据库,通用Model名
Sequelize multiple databases, common Model name
fs
.readdirSync(__dirname + '/commonmodel')
.filter(file => {
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
})
.forEach(file => {
const model = require(path.join(__dirname + '/commonmodel', file))(db.DB1, Sequelize.DataTypes, { logging: false });
db[model.name] = model;
});
fs
.readdirSync(__dirname + '/commonmodel')
.filter(file => {
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
})
.forEach(file => {
const model = require(path.join(__dirname + '/commonmodel', file))(db.DB2, Sequelize.DataTypes, { logging: false });
db[model.name] = model;
});
db.commonmodel.create({})
创建模型时如何指定要使用的数据库。
我正在尝试使用具有相同型号名称的多个数据库,我已成功连接并同步到其中三个我有一个通用的型号名称,我应该如何具体说明我要将模型保存在哪个数据库中.
谢谢!
首先,在定义模型时 类 您指定了一个 sequelize 实例。所以只需创建两个不同的 sequelize 实例即可。
// src/instances/sequelizeFirstDB
const Sequelize = require('sequelize');
module.exports = new Sequelize(process.env.FIRST_DATABASE_URL || 'postgres://postgres:Password@localhost:3205/firstDb'); // Put your connection string here.
// src/instances/sequelizeSecondDB
const Sequelize = require('sequelize');
module.exports = new Sequelize(process.env.SECOND_DATABASE_URL || 'postgres://postgres:Password@localhost:3205/secondDB'); // Put your connection string here.
在使用 init 时,指定您想要的实例 (db)。
const Sequelize = require('sequelize');
const { sequelizeInstance } = require('src/instances/sequelizeSecondDB');
class YourModel extends Sequelize.Model { }
YourModel.init({
name: {
type: Sequelize.DataTypes.STRING(100),
allowNull: false,
}
}, { sequelize: sequelizeInstance });
module.exports = YourModel;
之后就可以导入需要的模型来查询数据库了。
旁注。比 sequelize.sync
更喜欢 sequelize 迁移
fs
.readdirSync(__dirname + '/commonmodel')
.filter(file => {
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
})
.forEach(file => {
const model = require(path.join(__dirname + '/commonmodel', file))(db.DB1, Sequelize.DataTypes, { logging: false });
db[model.name] = model;
});
fs
.readdirSync(__dirname + '/commonmodel')
.filter(file => {
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
})
.forEach(file => {
const model = require(path.join(__dirname + '/commonmodel', file))(db.DB2, Sequelize.DataTypes, { logging: false });
db[model.name] = model;
});
db.commonmodel.create({})
创建模型时如何指定要使用的数据库。
我正在尝试使用具有相同型号名称的多个数据库,我已成功连接并同步到其中三个我有一个通用的型号名称,我应该如何具体说明我要将模型保存在哪个数据库中. 谢谢!
首先,在定义模型时 类 您指定了一个 sequelize 实例。所以只需创建两个不同的 sequelize 实例即可。
// src/instances/sequelizeFirstDB
const Sequelize = require('sequelize');
module.exports = new Sequelize(process.env.FIRST_DATABASE_URL || 'postgres://postgres:Password@localhost:3205/firstDb'); // Put your connection string here.
// src/instances/sequelizeSecondDB
const Sequelize = require('sequelize');
module.exports = new Sequelize(process.env.SECOND_DATABASE_URL || 'postgres://postgres:Password@localhost:3205/secondDB'); // Put your connection string here.
在使用 init 时,指定您想要的实例 (db)。
const Sequelize = require('sequelize');
const { sequelizeInstance } = require('src/instances/sequelizeSecondDB');
class YourModel extends Sequelize.Model { }
YourModel.init({
name: {
type: Sequelize.DataTypes.STRING(100),
allowNull: false,
}
}, { sequelize: sequelizeInstance });
module.exports = YourModel;
之后就可以导入需要的模型来查询数据库了。
旁注。比 sequelize.sync
更喜欢 sequelize 迁移