sql >> Database >  >> RDS >> Mysql

Sequelize:meerdere databases gebruiken

U moet verschillende vervolgversies maken voor elke DB-verbinding die u wilt maken:

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

Elke instantie die is gemaakt met sequelize heeft zijn eigen DB-info (db-host, url, gebruiker, pass, enz...) , en het is niet de bedoeling dat deze waarden worden gewijzigd, dus er is geen "juiste" manier om meerdere verbindingen te maken met één instantie van sequelize.

Van hun documenten :

Eén instantie per database

Een "gewone" benadering om dit te doen, is om uw databases in een config.json . te hebben bestand en loop eroverheen om dinamisch verbindingen te maken, zoiets als dit misschien:

config.json

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

Uw 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

Je moet wat meer coderen om het aan de gang te krijgen, maar het is een algemeen idee.



  1. Aantal keren dat een bepaald teken in een tekenreeks voorkomt

  2. MySql verbinden met Android zonder PHP te gebruiken

  3. Gebruik van BOB in lessen

  4. Hoe SQLite Quote() werkt