sql >> Databáze >  >> RDS >> Mysql

Sequelize:Použití více databází

Pro každé připojení DB, které chcete vytvořit, musíte vytvořit různé instance sequelize:

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

Každá instance vytvořená z sequelize má své vlastní informace o DB (hostitel db, url, uživatel, průchod atd...) a tyto hodnoty nejsou určeny ke změně, takže neexistuje žádný "správný" způsob, jak vytvořit více připojení s jednou instancí sequelize.

Z jejich dokumentů :

Jedna instance na databázi

"Obvyklým" přístupem k tomu je mít databáze v config.json soubor a smyčka přes něj vytvořit připojení dynamicky, něco takového možná:

config.json

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

Vaše aplikace

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

Budete muset udělat trochu více kódování, abyste jej uvedli do provozu, ale je to obecný nápad.



  1. Jednoduchá parametrizace a triviální plány — 2. část

  2. Změna typu sloupu na delší řetězce v kolejnicích

  3. Jakou velikost má hodnota Null na serveru SQL Server

  4. Jak používáme databáze v našem každodenním životě