2016-06-24 11 views
1

Ich bin Anfänger in sailsjs, ich habe mehrere Datenbanken, aber Tabellenstruktur ist gleich. Also würde ich gerne Single-Modell und Controller für alle diese Datenbanken verwenden.Wie verwendet man mehrere Datenbankverbindungen mit einem Modell dynamisch in sailsjs?

Ich weiß, wir Verbindungsattribut in Modell wie diese

module.exports = { 
    connection: 'mysqlServer1', 
    attributes: { 
    userid: { 
     type: 'integer', 
     primaryKey: true 
    }, 
    fbid: { 
     type: 'string' 
    }, 
    source: { 
     type: 'string' 
    } 
    }  
} 
}; 

einstellen Aber wie können wir Verbindung dynamisch zur Laufzeit setzen?

Danke

Antwort

0

Ich fürchte, das ist noch nicht möglich. Das nächste, was Sie zu einer dynamischen Verbindung bekommen können, ist das folgende npm-Paket https://github.com/sgress454/sails-hook-autoreload. Dies lädt sailjs automatisch mit der geänderten Verbindungskonfiguration neu, ohne die Segel wieder anzuheben. Aber es wird Ihr Problem während der Laufzeit nicht abdecken.

1

Ich weiß, das ist alt, aber ich stolperte darüber auf der Suche nach einer Lösung für verschiedene Probleme, dachte ich würde antworten.

Die einfachste Möglichkeit besteht darin, nur Umgebungsvariablen festzulegen und Standardwerte zu verwenden.

Zum Beispiel, wenn Sie MODELA_CONN="mysqlServer1" in Ihrem .bash_profile setzen, oder heben Segel mit einem Export wie export MODELA_CONN="mysqlServer1" && sails lift, dann können Sie nur das verwenden:

module.exports = { 
    connection: process.env.MODELA_CONN || "defaultMysql", 
    ... 
}