sql >> Databasteknik >  >> RDS >> Mysql

Uppföljning:Använda flera databaser

Du måste skapa olika instanser av uppföljning för varje DB-anslutning du vill skapa:

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

Varje instans som skapas från sequelize har sin egen DB-information (db-värd, url, användare, pass, etc...) , och dessa värden är inte avsedda att ändras, så det finns inget "korrekt" sätt att skapa flera kopplingar med en instans av uppföljning.

Från deras dokument :

En instans per databas

En "vanlig" metod för att göra detta är att ha dina databaser i en config.json fil och loop över den för att skapa anslutningar dynamiskt, ungefär så här kanske:

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 kommer att behöva göra lite mer kodning för att få det igång men det är en allmän idé.



  1. Hur man stoppar eller stryper SST-drift på ett Galera-kluster

  2. Ny användare och LDAP-hantering i ClusterControl 1.8.2

  3. MySQL in the Cloud - Online Migration From Amazon RDS to EC2 Instance:Part One

  4. ALTER TABLE-satsen kom i konflikt med CHECK-begränsningen i SQL Server - SQL Server / TSQL självstudie del 89