Suche…


Verwenden eines Verbindungspools ohne Datenbank

Multitenancy auf Datenbankservern mit mehreren darauf gehosteten Datenbanken erreichen.

Multitenancy ist heutzutage eine häufige Anforderung an Unternehmensanwendungen, und das Erstellen eines Verbindungspools für jede Datenbank im Datenbankserver wird nicht empfohlen. Stattdessen können Sie stattdessen einen Verbindungspool mit dem Datenbankserver erstellen und dann bei Bedarf zwischen den auf dem Datenbankserver gehosteten Datenbanken wechseln.

Angenommen, unsere Anwendung verfügt über unterschiedliche Datenbanken für jedes auf dem Datenbankserver gehostete Unternehmen. Wir werden eine Verbindung zu der jeweiligen Firmendatenbank herstellen, wenn der Benutzer die Anwendung besucht. Hier ist das Beispiel, wie das geht: -

var pool  = mysql.createPool({
      connectionLimit : 10,
      host            : 'example.org',
      user            : 'bobby',
      password        : 'pass'
    });
    
pool.getConnection(function(err, connection){
    if(err){
        return cb(err);
    }
    connection.changeUser({database : "firm1"});
    connection.query("SELECT * from history", function(err, data){
        connection.release();
        cb(err, data);
    });
});

Lassen Sie mich das Beispiel aufschlüsseln: -

Bei der Definition der Poolkonfiguration habe ich nicht den Datenbanknamen angegeben, sondern nur den Datenbankserver

{
  connectionLimit : 10,
  host            : 'example.org',
  user            : 'bobby',
  password        : 'pass'
}

Wenn wir also die spezifische Datenbank auf dem Datenbankserver verwenden möchten, bitten wir die Verbindung, die Datenbank zu treffen, indem Sie Folgendes verwenden: -

    connection.changeUser({database : "firm1"});

Die offizielle Dokumentation können Sie hier einsehen



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow