Ich verstehe, warum ich meine Datenbankverbindungen in der parameters.yml
Datei behalten sollte, aber ich wollte auch zusätzliche Datenbankverbindungen sowie verschiedene Hosts für einrichten Entwickler-, Bühnen- und Produktumgebungen. Ich dachte, ich könnte dies mit der , config_test.yml
und config_prod.yml
in Verbindung mit config.yml
tun, bin ich falsch?Verwechslung mit parameters.yml und config_ (dev | stage | prod) .yml für Datenbankverbindungen
In parameters.yml
Ich halte die Hauptdatenbankverbindung aber kann ich diese stattdessen zu den Config (s) verschieben?
Beispiel: config.yml
# Doctrine Configuration - notice there is no host defined here
doctrine:
dbal:
default_connection: blah
connections:
blah:
driver: pdo_pgsql
port: 5432
dbname: blah
user: blah_user
password: blah_pass
charset: UTF8
foo:
driver: pdo_pgsql
port: 5432
dbname: foo
user: foo_user
password: foo_pass
charset: UTF8
Beispiel: config_dev.yml
# Doctrine Configuration - Here I define the dev hosts
doctrine:
dbal:
connections:
blah:
host: blah_dev
foo:
host: foo_dev
Beispiel: config_test.yml
# Doctrine Configuration - Here I define the stage or QA hosts
doctrine:
dbal:
connections:
blah:
host: blah_stage
foo:
host: foo_stage
Beispiel: config_prod.yml
# Doctrine Configuration - Here I define the prod hosts
doctrine:
dbal:
connections:
blah:
host: blah_prod
foo:
host: foo_prod
Jetzt habe ich auch die Einstellungen in parameters.yml
entfernt, aber Symfony/Doctrine mag das nicht. Fehle ich etwas? Wie kann ich etwas einrichten, das ich habe?
Nun, wenn ich die Standard-Datenbankverbindung in parameters.yml
definieren kann ich mit ihm verbinden und dann
parameters:
database_driver: pdo_pgsql
database_host: blah_prod
database_port: 5432
database_name: blah
database_user: blah_user
database_password: blah_pass
und in config.yml
doctrine:
dbal:
driver: "%database_driver%"
host: "%database_host%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
Aber jetzt verliere ich die mehr Datenbanken ich brauche und die Möglichkeit von Dev zu Stage zu prod Datenbankservern zu wechseln.
Ich muss einige zusätzliche Dokumentation fehlen, wo dies angesprochen wird, wäre jede Hilfe groß.
Ich habe die Dokumentation für mehrere Datenbankverbindungen mit Lehre
gesehen, aber ich würde zu vermeiden, wie für jeden Entwickler, Bühnen- und prod wie unter drei Datenbank-Optionen hinzufügen Server (n) in parameters.yml
parameters:
database_driver: pdo_pgsql
database_host: blah_dev
database_port: 5432
database_name: blah
database_user: blah_user
database_password: blah_pass
#database_driver2: pdo_pgsql
database_host2: blah_stage
#database_port2: 5432
#database_name2: blah
#database_user2: blah_user
#database_password2: blah_pass
#database_driver3: pdo_pgsql
database_host3: blah_prod
#database_port3: 5432
#database_name3: blah
#database_user3: blah_user
#database_password3: blah_pass
(Vielleicht die verschiedenen Hosts einfach konfigurieren?)
Das sieht hässlich aus und eine PITA, und das ist nur für blah Datenbank, ich müsste dies für foo und alle anderen Datenbanken tun, die ich konfigurieren muss.
Danke, ich habe die Dokumentation gesehen, die Sie vorgeschlagen haben, aber es hilft immer noch nicht meine Situation. Aus dem Grund, warum ich dieses Setup möchte. 1) Ich habe mehrere Datenbankserver, 2) Ich habe mehrere Umgebungen (dev, stage, prod, QA) und 3) Ich möchte all diese einfach definieren/konfigurieren, so dass andere (keine Technikerteams) nicht müssen oder haben die Fähigkeit, diese Änderungen vorzunehmen. Irgendwelche anderen Vorschläge? –
Vielleicht brauchen Sie nur in config.yml Importe entfernen: - {Ressource: parameters.yml} und in config_dev.yml hinzufügen und Importe config_prod.yml: - {Ressource: parameters_dev.yml} oder - {Ressource : parameter_prod.yml} – nvvetal