Ich baue eine Webanwendung mit Play! mit Vertica-Datenbank als Back-End. Die JDBC-Verbindungszeichenfolge für Vertica enthält den Namen des Servers und der Datenbank, aber meine Tabellen sind unter einem bestimmten Schema (z. B. "dev_myschema"). Daher sollte ich meine Tabelle als "dev_myschema.mytable" bezeichnen. Es gibt eine exakte Kopie all dieser Tabellen in einem Produktionsschema (sagen wir "prod_myschema") mit echten Daten.
Ich möchte diesen Schemanamen in der Konfigurationsdatei festlegen, so dass es einfach ist, zwischen diesen beiden Schemas zu wechseln. Fürs Erste habe ich eine getConnection-Methode in einer Hilfsklasse, die DB.getConnection () ausführt und das konfigurierte Schema als das Standardschema für dieses Verbindungsobjekt einstellt. Dasselbe hilft jedoch nicht in anderen Modellklassen, wo es zusammen mit seiner Entity-Annotation (@Entity @Table (name = dev_myschema.mytable))
erwähnt wirdGibt es eine Möglichkeit, wie ich den Schemanamen in der Konfigurationsdatei angeben und durch die Verbindungsmethode sowie die Modellanmerkungen lesen lassen kann?
Danke.
Eugene hatte es fast richtig, aber es fehlte ein Unterstrich. Die korrekte Vertica SQL-Syntax zum Festlegen des Standardschemas lautet:
%Vor%Wie Eugene vorgeschlagen hat, können Sie, wenn Sie Low-Level-JDBC verwenden, sobald Sie Ihr Connection-Objekt erstellt haben, Folgendes tun:
%Vor%Soweit mir bekannt ist (und ich habe gerade die Dokumentation von 4.1.7 durchsucht), gibt es bisher keine Möglichkeit, ein Schema als Standard festzulegen.
Die Art und Weise, wie ich dieses Problem behandle, besteht in der Ausführung eines Befehls "set search path", wenn ich mein Entwicklungsschema verwende. Sobald das Vertica-Verbindungsobjekt erstellt wurde, führen Sie den folgenden Befehl aus:
%Vor%In meinem Anwendungscode habe ich nur ein Vertica-Objekt, das eine Umgebungsvariable / config überprüft, und wenn die Einstellung "dev schema" vorhanden ist, führt es diese Anweisung beim Verbindungsaufbau aus. Meine Produktionskonfiguration hat diese Einstellung nicht, daher verwendet sie in diesem Fall nur das Standardschema und nicht den zusätzlichen Aufwand, diese Anweisung jedes Mal auszuführen.
In 7.0 kann der Administrator ihn auf Benutzerebene setzen, indem er den folgenden Befehl ausgibt:
%Vor%Tags und Links jpa playframework vertica