Du skal oprette forskellige forekomster af sequelize for hver DB-forbindelse, du vil oprette:
const Sequelize = require('Sequelize');
const userDb = new Sequelize(/* ... */);
const contentDb = new Sequelize(/* ... */);
Hver forekomst oprettet fra sequelize har sin egen DB-information (db-vært, url, bruger, pass osv...) , og disse værdier er ikke beregnet til at blive ændret, så der er ingen "korrekt" måde at skabe flere forbindelser med én forekomst af efterfølger.
Én forekomst pr. database
En "almindelig" tilgang til at gøre dette er at have dine databaser i en config.json
fil og løkke over det for at skabe forbindelser dynamisk, noget som dette måske:
config.json
{
/*...*/
databases: {
user: {
path: 'xxxxxxxx'
},
content: {
path: 'xxxxxxxx'
}
}
}
Din app
const Sequelize = require('sequelize');
const config = require('./config.json');
// Loop through
const db = {};
const databases = Object.keys(config.databases);
for(let i = 0; i < databases.length; ++i) {
let database = databases[i];
let dbPath = config.databases[database];
db[database] = new Sequelize( dbPath );
}
// Or a one liner
const db = Object.entries(config).reduce((r, db) => (r[db[0]] = db[1].path) && r, {});
// Sequelize instances:
// db.user
// db.content
Du bliver nødt til at lave lidt mere kodning for at få det op at køre, men det er en generel idé.