Musisz utworzyć różne instancje sekwencjonowania dla każdego połączenia z bazą danych, które chcesz utworzyć:
const Sequelize = require('Sequelize');
const userDb = new Sequelize(/* ... */);
const contentDb = new Sequelize(/* ... */);
Każda instancja utworzona z sequelize ma swoje własne informacje o bazie danych (host bazy danych, adres URL, użytkownik, hasło itp.) , a te wartości nie mają być zmieniane, więc nie ma „poprawnego” sposobu tworzenia wielu połączeń z jednym wystąpieniem sequelize.
Jedna instancja na bazę danych
„Powszechnym” podejściem do tego jest posiadanie baz danych w pliku config.json
plik i zapętl go, aby dynamicznie tworzyć połączenia, może coś takiego:
config.json
{
/*...*/
databases: {
user: {
path: 'xxxxxxxx'
},
content: {
path: 'xxxxxxxx'
}
}
}
Twoja aplikacja
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
Będziesz musiał zrobić trochę więcej kodowania, aby go uruchomić, ale jest to ogólny pomysł.