データベース接続をファイルに保持する必要がある理由は理解していparameters.yml
ますが、追加のデータベース接続と、開発、ステージ、および本番環境用のさまざまなホストもセットアップしたいと考えていました。と組み合わせてこれを行うことができると思っていましたがconfig_dev.yml
、間違っていますか?config_test.yml
config_prod.yml
config.yml
parameters.yml
メインのデータベース接続を保持していますが、代わりにこれを構成に移動できますか?
例: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
例:config_dev.yml
# Doctrine Configuration - Here I define the dev hosts
doctrine:
dbal:
connections:
blah:
host: blah_dev
foo:
host: foo_dev
例:config_test.yml
# Doctrine Configuration - Here I define the stage or QA hosts
doctrine:
dbal:
connections:
blah:
host: blah_stage
foo:
host: foo_stage
例:config_prod.yml
# Doctrine Configuration - Here I define the prod hosts
doctrine:
dbal:
connections:
blah:
host: blah_prod
foo:
host: foo_prod
の設定も削除しましたparameters.yml
が、Symfony / Doctrine はこれを気に入りません。何か不足していますか?私が持っているようなものをどのようにセットアップできますか?
ここで、デフォルトのデータベース接続を定義するparameters.yml
と、それに接続してから
parameters:
database_driver: pdo_pgsql
database_host: blah_prod
database_port: 5432
database_name: blah
database_user: blah_user
database_password: blah_pass
そして config.yml で
doctrine:
dbal:
driver: "%database_driver%"
host: "%database_host%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
しかし今、私は必要な複数のデータベースを失い、dev から stage、prod のデータベース サーバーに切り替えることができなくなりました。
これが対処されている追加のドキュメントが欠けているに違いありません。
Doctrine を使用した複数データベース接続のドキュメントを見てきました
ただし、次のような 3 つのデータベース オプションを各開発、ステージ、および本番サーバーに追加する必要は避けたいと思います。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
(たぶん、異なるホストを構成するだけですか?)
これは見栄えが悪く、PITA のように見えます。これは単なるデータベース用です。foo および構成する必要があるその他のデータベースに対してこれを行う必要があります。