Festlegen des Standardschemas für Vertica Database

8

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 wird

Gibt es eine Möglichkeit, wie ich den Schemanamen in der Konfigurationsdatei angeben und durch die Verbindungsmethode sowie die Modellanmerkungen lesen lassen kann?

Danke.

    
Ananth 27.05.2011, 06:21
quelle

5 Antworten

6

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%     
Eamonn O'Brien-Strain 02.05.2012 20:42
quelle
1

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.

    
geoffrobinson 30.08.2011 18:52
quelle
0

Gemäß dem SQL-Leitfaden ist das Standardschema das erste, das in Ihrem Suchbaum gefunden wird. Vielleicht könntest du das ausnutzen und sicherstellen, dass deine Kopie zuerst gefunden wird.

    
Laures 28.09.2011 07:00
quelle
0

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.

    
Eugene 26.03.2012 21:58
quelle
0

In 7.0 kann der Administrator ihn auf Benutzerebene setzen, indem er den folgenden Befehl ausgibt:

%Vor%     
user3795579 01.07.2014 22:03
quelle

Tags und Links