Dears.
Моя бизнес-логика c очень сложна для объяснения, но в целом я могу описать это так: у меня есть центральная база данных, в которой я сохраняю глобальную конфигурацию, и прибл. 22 базы данных доставлены по моей стране с той же схемой. Следуя документации Sequelize, я создал такую конфигурацию в приложении. js:
global.dbCentral = new Sequelize('mysql://dir:password@localhost:port/dbCentral', {
dialect: 'mysql',
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
},
operatorsAliases: false
, timezone: '-03:00' //for writing to database
});
global.dbSala = new Sequelize('mysql://dir:password@localhost:port/defaultDb', {
dialect: 'mysql',
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
},
operatorsAliases: false
, timezone: '-03:00' //for writing to database
});
С центральными соединениями у меня нет проблем. то есть я создал такую модель:
const Sequelize = require('sequelize');
const Promocion = dbCentral.define('promocion', {
id: {
type: Sequelize.INTEGER(10).UNSIGNED,
allowNull: false,
primaryKey: true,
autoIncrement: true
},
titulo: {
type: Sequelize.TEXT,
allowNull: true
},
descripcion: {
type: Sequelize.TEXT,
allowNull: true
},
monto: {
type: Sequelize.FLOAT,
allowNull: true
},
img: {
type: Sequelize.STRING(45),
allowNull: true
},
activa: {
type: Sequelize.BOOLEAN,
allowNull: true
},
fecha_inicio: {
type: Sequelize.DATE,
allowNull: true
},
fecha_fin: {
type: Sequelize.DATE,
allowNull: true
}
}, {
tableName: 'promocion',
timestamps: false
});
Promocion.hasMany(PromocionUsuarioCruciclub, { as: 'promocion_usuario_cruciclub', foreignKey: 'id', targetKey: 'id_promocion' });
module.exports = Promocion;
Но я не знаю, как настроить модели, использующие меняющиеся соединения. Если я создаю dbSala для каждой имеющейся у меня sala (dbSala1, dbSala2 ... et c), мне нужно повторить каждый файл модели, и это невозможно управлять.
Я думал, что ответ был здесь: Sequelize: использование нескольких баз данных , но в моем случае это не сработало.
Я использую sequelize 4.43.0
Пожалуйста, скажите, если вам нужно что-то объяснить лучше
спасибо!