2012-12-15 82 views
3

我正在開發50個相關的rails應用程序,它們之間會有細微的差異--css可能會有所不同,也許每個應用程序都會爲了SEO等而在視圖上有不同的路線和不同的標題。如何使用git組織50個相關的rails應用程序?

但我希望所有50個應用程序在我改變其他事物時保持一致。所以基本上,我將不得不最終與我自己的CMS,每個網站將有不同的設置。

我相信我不是第一個遇到這個問題的人。如何組織使用Rails,git,github和heroku,以便在部署時所有應用程序更新並保持一致,但仍保留其自己的設置?

回答

4

我叉基地項目,並將其作爲 「上游」。 我克隆了我的開發環境中的分叉項目,並將其保留爲「原點」。 所以我的開發環境有一個起源和一個上游。

當我做一些影響所有分支項目的事情時,我會在上游進行更改,然後進入每個項目,從上游拉入併合並。

您還可以擁有一個上游層次結構,並保持它們與原始上游同步。

+0

我會需要梳理我的bash腳本技能來使用這種技術來自動化事物,但我認爲這是要走的路線 – Tom

1

如果這些是純粹的配置文件,最好的辦法是遵循Heroku的頁面「Configuration and Config Vars」:

不要把這些文件放在一個Git回購本身。

使用Heroku的CLI的configconfig:addconfig:getconfig:remove來管理你的配置瓦爾

+0

恐怕它會比@VonC更多。想想我想改變的情況,在一個應用程序中說出特定視圖的路線。至少說 – Tom

0

如果可能的話,我只需要維護一個項目就可以了。如果只是應用程序的(用戶控制)樣式,您可能會採用basecamp樣式的多租戶方式。您的應用會顯示不同的終結點,例如通過子域進行區分,您也可以指向不同的頂級域名。然後,應用程序的可變部分需要被存儲在數據庫中,例如,樣式,佈局以及您擁有的任何用戶控制內容。一種方法概述in the answers to this question,雖然肯定有更多的方法。

+0

我查看了關於多租戶的兩個railscasts,但它的缺陷在於每個應用程序將需要它自己的IP和退出可能託管在不同的服務器上,也可能在未來被出售給第三方。所以這種方法將違反我對封裝和「爲可拆卸模型構建」設計的需求。 (我應該在問題中提到所有這些!) – Tom

相關問題