我明白爲什麼我應該保留我的數據庫連接在parameters.yml
文件中,但我也想設置其他數據庫連接以及不同的主機開發,舞臺和刺激環境。我以爲我可以用config_dev.yml
,config_test.yml
和config_prod.yml
與config.yml
這樣做,我錯了嗎?與數據庫連接的parameters.yml和config_(dev | stage | prod).yml混淆
在parameters.yml
我主持數據庫連接,但我可以將它移動到配置(S)而不是?
實施例: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數據庫服務器的能力。
我必須丟失一些額外的文件,這是處理,任何幫助將是偉大的。
我已經看到了多個數據庫連接文件與學說
但我想,以避免添加三個數據庫選項下面一樣爲每個開發,階段和生產線服務器(收費)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,這只是爲了blah數據庫,我必須爲foo和我需要配置的任何其他數據庫執行此操作。
謝謝,我已經看過你建議的文檔,但它仍然不能幫助我的情況。爲什麼我要這個設置的原因。 1)我有多個數據庫服務器,2)我有多個環境(dev,stage,prod,QA)和3)我想輕鬆地定義/配置所有這些,以便其他人(無技術團隊)不需要或不需要有能力做出這些改變。還有其他建議嗎? –
也許你只需要在config.yml刪除 進口: - {資源:parameters.yml} 並添加config_dev.yml和config_prod.yml 進口: - {資源:parameters_dev.yml}或 - {資源:parameters_prod.yml} – nvvetal