尋找一種方法來乾淨地覆蓋Doctrine/Symfony中的databases.yml的值,以便使用我自己的本地設置?如何在Doctrine中使用本地設置覆蓋團隊的默認databases.yml?
這個想法沒有觸及databases.yml,並使用某種本地未版本化的文件來覆蓋該默認值。
我試圖找出如何沒有多少成功尚未:/
尋找一種方法來乾淨地覆蓋Doctrine/Symfony中的databases.yml的值,以便使用我自己的本地設置?如何在Doctrine中使用本地設置覆蓋團隊的默認databases.yml?
這個想法沒有觸及databases.yml,並使用某種本地未版本化的文件來覆蓋該默認值。
我試圖找出如何沒有多少成功尚未:/
對於這種類型的配置文件,它包含的東西,取決於環境(開發,測試,運行,生產,... ),我通常在每個環境中使用一個文件,並且都致力於源代碼管理。
例如,我可以有:
databases.yml
==開發版本,當項目從源代碼控制簽出在開發計算機上,將工作。databases.testing.yml
databases.staging.yml
databases.production.yml
然後,構建.tag.gz
(或類似)將被部署到不同的環境存檔時,我複製對應的文件目的地的默認值。
例如,創建將部署在生產服務器上的存檔時,我將databases.production.yml
複製到databases.yml
的存檔中。
這樣,應用程序始終使用databases.yml
,無論它部署在什麼環境 - 所有可能的配置都被委託給源代碼控制。
當然,這種效果要好得多,如果你有一些包裝/構建過程 - 而且不只是用手通過FTP上傳文件到服務器...
我一般添加database.yml到svn:忽略,而是提交database.yml.sample。
本地會將database.yml.sample複製爲database.yml並添加它們自己的值。
這樣database.yml文件不能被意外提交。
感謝您的快速回復。你的信息是有用的,但不是在這個特定的情況下。我正在尋求一種方法來在本地覆蓋版本控制的databases.yml,而我正在開發..對於部署它不是一個問題來編輯它,並把正確的值。 – gnrfan 2010-07-13 18:46:40
好吧,在開發時,我使用默認的databases.yml,它在源代碼控制下 - 不需要重寫任何東西,這種方式*(並且不承擔任何不應該承擔的風險)* – 2010-07-13 18:50:34
這個想法因爲我也用Django進行開發。由於settings.py只是一個Python模塊,您最終試圖導入local_settings.py文件,如果它已成功導入,則會將本地更改應用於配置。當然,settings.py是版本控制的,local_settings.py未版本控制。我正在尋找類似的東西。 – gnrfan 2010-07-13 18:57:09