我想一次连接50个数据库,同时使用相同类型的模式和相同类型的模型表,但是数据库位于不同的位置,因此如何通过一个sequelize对象使用连接字符串来连接所有数据库和一个模型对象以访问所有相同类型的数据库表。
//database configurations
const Sequelize = require('sequelize');
s2t2centerdb = new Sequelize(s2, 'root', 'password', {
dialect: 'mysql',
host: 'localhost'
});
//model
const Center = s2t2centerdb.define('center',{
CenterID:{
type:Sequelize.INTEGER(6),
autoIncrement: true,
allowNull:false,
primaryKey:true
},
CenterShortName:{
type:Sequelize.STRING(30),
allowNull:false,
validate: {
len: {
args: [1,30],
msg: 'Center Short Name must be 1 to 30 character length!'
}
}
},
CenterName:{
type:Sequelize.STRING(100),
allowNull:false,
validate: {
len: {
args: [1,30],
msg: 'Center Name must be 1 to 30 character length!'
}
}
},
CenterAddress:{
type:Sequelize.STRING(255),
allowNull:false,
validate: {
notEmpty: {
args: true,
msg: 'Center Address cannot be empty!'
}
}
},
CenterDistrictName:{
type:Sequelize.STRING(30),
allowNull:false,
validate: {
notEmpty: {
args: true,
msg: 'District Name cannot be empty!'
}
}
},
CenterTalukaName:{
type:Sequelize.STRING(30),
allowNull:false,
validate: {
notEmpty: {
args: true,
msg: 'Taluka Name cannot be empty!'
}
}
},
CenterCityName:{
type:Sequelize.STRING(30),
allowNull:false,
validate: {
notEmpty: {
args: true,
msg: 'City Name cannot be empty!'
}
}
},
OrgId:{
type:Sequelize.INTEGER(6),
allowNull:false,
validate: {
notEmpty: {
args: true,
msg: 'Org Id cannot be empty!'
}
}
}
});
module.exports = Center;
//Controller Query to be executed
Center.create(values)
.then(result => {
var res = "Details Submitted Successfully.";
return res;
})
.catch(err => {
throw err;
});
上下文-实际上,我想对所有具有中心表的数据库进行上述查询,但是sequelize一次只允许一个数据库连接,因此需要一些帮助在运行时连接到所有数据库。
我在其架构中有50个相同类型和相同类型表的数据库。现在,我为一个数据库创建了一个sequelize连接字符串和一个模型,但是问题是我不想为所有数据库创建50个相同类型的模型,所以有没有办法使用sequelize连接一个模型来访问所有数据库运行时连接字符串。