2012-06-06 50 views
0

我有一個Rails應用程序,現在我打算將多個實例部署到不同的域。本來我只打算讓它在一個域上。在源代碼控制之外配置域名

我意識到對於每個域,我必須替換各個地方的所有硬編碼值。這些措施包括:

  • 資產主機路徑(資產位於同一個域)
  • 每當寶石的:應用程序設置(因爲有兩個域可以共享相同的服務器,這是爲了避免crobtab更新衝突)
  • 一些使用捲曲到自己的地址來觸發事件的任務
  • carrierwave在計算圖像完整url時不需要請求對象時需要硬編碼值。

問題

是否有一個策略來設置這個,所以:

  • 設置不應COMMITED到源代碼控制(如database.yml.example
  • 碼外的Rails可以訪問它(只要寶石不加載Rails環境)
  • 接受方式ss域可以是一致的

回答

1

您可以採取的一種方法是具有每個部署屬性的YAML文件。您甚至可以檢查其中的開發版本,並使用正確的版本覆蓋您的部署腳本。

通常,我會將該配置文件放在shared/config中(假設爲capistrano樣式佈局),然後在部署過程中將其鏈接到當前版本。

+0

感謝這就是我所做的。不過,我想知道是否有這樣的寶石解決方案 – lulalala