sql >> Base de Datos >  >> RDS >> Mysql

Secuela:uso de varias bases de datos

Debe crear diferentes instancias de secuenciación para cada conexión de base de datos que desee crear:

const Sequelize = require('Sequelize');
const userDb = new Sequelize(/* ... */);
const contentDb = new Sequelize(/* ... */);

Cada instancia creada a partir de Sequelize tiene su propia información de base de datos (host de base de datos, URL, usuario, pase, etc...) , y estos valores no deben cambiarse, por lo que no existe una forma "correcta" de crear conexiones múltiples con una instancia de secuencial.

De sus documentos :

Una instancia por base de datos

Un enfoque "común" para hacer esto es tener sus bases de datos en un config.json y haga un bucle sobre él para crear conexiones dinámicamente, tal vez algo como esto:

config.json

{
    /*...*/
    databases: {
        user: {
            path: 'xxxxxxxx'
        },
        content: {
            path: 'xxxxxxxx'
        }
    }
}

Tu aplicación

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

Tendrá que hacer un poco más de codificación para ponerlo en funcionamiento, pero es una idea general.