2016-04-15 8 views
2

Meine Anwendung richtet sich an mehrere Kunden, die Subdomänen verwenden, und verwendet eine gemeinsame Datenbank für das Infrastrukturmanagement und kundenspezifische Datenbanken für jeden Kunden. Ich entwickle dies mit Python Flask Framework und mit flask-sqlalchemy Plugin.Flask: Verschiedene Datenbank-Backends für verschiedene Subdomains?

Für ein einzelnes Kundenszenario kann ich dies mit zwei sqlalchemy bindet in Konfiguration (eine für Kunden-db, eine für Housekeeping-db). Wenn ich jedoch mehrere Kunden hinzufüge, möchte ich, dass sie kundenspezifische Konfigurationen verwenden, um die richtige Datenbank für die Kundenbindung zu erhalten. Für mich ist es wichtig, Kundendaten in eigenen Datenbanken für Compliance-Anforderungen zu halten.

Eine Möglichkeit, die Funktionalität zu erreichen, ist die Bereitstellung so vieler Web-Apps, wie es Kunden gibt, aber das ist nicht skalierbar.

Ich erforschte mit blueprints, aber Blueprints werden verwendet, um verschiedene Ansichten für jeden Entwurf zu haben. Für mich bleiben die Ansichten für alle Kunden gleich. Ich möchte nur, dass sie basierend auf der Subdomain auf verschiedene Datenbanken zugreifen. Außerdem ist es möglicherweise keine gute Idee, weiter Blaupausen zu erstellen, wenn die Kundenliste wächst. Wie erreicht man dies mit einer Ein-Flaschen-App, die dieselben Ansichten und Modelldefinitionen verwendet?

Antwort

0

Sie könnten einige Codes in einer Funktion mit dem Dekorateur legen gewickelten @app.before_request zu überprüfen, ob der Benutzer authentifiziert ist und richtige Datenbank erarbeiten dann die basierend auf Flask des request.url und speichern sie in Flask des globalen g Objekt.