sql >> Database teknologi >  >> RDS >> Mysql

Efterfølger:Brug af flere databaser

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.

Fra deres dokumenter :

É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é.



  1. ORA-16205 Opgradering til 11.2.0.3

  2. Det er i detaljerne

  3. Hvordan kan jeg tælle og gruppere kolonner separat med MySQL?

  4. Hvad er nyt i MariaDB Cluster 10.4