symfony2 + doctrine2 @ postgresql Festlegen eines Schemas

8

Ich möchte symfony2 + doctrine2 für ein neues Projekt verwenden. Ich stieß auf ein kleines Problem mit Postgresql-Schemas. Im Gegensatz zu mysql können Sie in Postgres (wie auch andere Datenbanken) verschiedene Schemata angeben. Unsere produktive Datenbank enthält beispielsweise rund 200 Schemata.

Ich muss ein Schema für meine aktuelle Verbindung zur Lehre festlegen. Wie kann ich das tun?

Ich habe dieses Problem vor ein paar Monaten in einem anderen Projekt gelöst, das nur doctrine2 verwendet. Ich habe Folgendes getan:

%Vor%

Aber ich weiß nicht, wo ich das in symfony2 machen soll?

    
Michael Mezger 18.05.2012, 14:37
quelle

3 Antworten

4

Sie könnten versuchen, Ihre eigene driver_class zu implementieren und zu verwenden und den search_path in den PDO DriverOptions zu übergeben, z. in deiner Symfony-Konfiguration:

%Vor%

Der Fahrer könnte so aussehen:

%Vor%

Sie benötigen die _constructPdoDsn-Methode, da sie in \ Doctrine \ DBAL \ Driver \ PDOPgSql \ Driver nicht als geschützt definiert ist. Es ist etwas "hacky", weil wir PDO DriverOptions verwenden und ich bin mir nicht sicher, ob das ein guter Weg ist - aber es scheint zu funktionieren.

Hoffe, das hilft.

Mit freundlichen Grüßen

Patryk

    
Patryk Kordylewski 31.05.2012, 08:09
quelle
1

Ich habe eine kürzere Version des gleichen Codes erstellt.

Ссылка

    
Honza Kuchař 07.10.2014 17:57
quelle
0

Seit Doctrine 2.5 können Sie den Schemanamen in der Annotation @Table angeben:

%Vor%

Der einzige Nachteil ist, dass die Symfony-Konsole das nicht kann, Sie müssen es manuell angeben.

    
Joshua 06.02.2015 09:51
quelle

Tags und Links