假設我有不同的數據庫連接...Rails 3 - 使用多個數據庫連接工作的rake任務
現在就本示例而言,我們只關心開發。當我運行'rake db:setup'時,它只會創建開發,因爲從rake任務的角度來看,其他連接是另一個環境。我可以通過RAILS_ENV傳遞另一個連接來創建數據庫。然而,問題出現在我們如何定義我們的數據庫連接。我寧願不撤消這一點,因爲它使管理和部署更容易。我們所做的是...
在我們的database.yml中,我們添加了以下代碼。
databases_file = File.join(Rails.root.to_s, "config", "databases", "#{Rails.env.to_s}.yml")
IO.read(databases_file) if File.exist?(databases_file)
然後在config下的數據庫子文件夾中,我們創建了不同的環境yml文件。
所以development.yml我們有...
development:
... details ...
logging:
... details ...
現在,如果我設置RAILS_ENV來「記錄」它永遠不會加載,因爲文件被稱爲development.yml文件。因此它永遠不會找到日誌連接。
如果我將所有這些設置合併到database.yml文件中,那麼我們又回到沒有檢查database.yml到git倉庫中,並且不得不在開發機器上爲新僱員等手動創建它。我們還必須更改我們的部署過程,以開始將文件放置在較低的環境中。 (我們的生產流程已經支持這個)
正如我所說我不想將我的文件合併到一個database.yml中。我最終編寫了所有新的rake任務。如果我能找出一種方法讓它們脫穎而出,我可能會在某些時候在github上發佈它們。 – Altonymous 2012-04-19 03:52:37