2011-07-19 22 views
1

我的開發機器在某些方面與我的部署/生產服務器不同,無法更改。 (例如,我的開發機器具有運行在不同端口上的多個數據庫服務器版本,而每個生產服務器只有一個版本的RDBMS正在運行,每個實例都運行在默認端口上。)以每臺機器爲基礎更改Sinatra設置

有哪些技術可用於在一臺機器上對另一臺機器配置Sinatra Web應用程序有所不同?理想情況下,答案將總結多種方法,並突出顯示對受訪者最有效的一種方法。任何基於文件的解決方案還應該(理想情況下)在兩臺機器之間存在統一的源代碼管理庫時討論如何處理這種情況。

請注意,此問題與開發模式與生產模式的配置正交。

回答

3

一個解決辦法是加載兩個配置文件:第一,主要的(比方說,settings.rb),然後在特定的機器,一個能夠否定必要的設置(settings-custom.rb)。

當然,由於您有多臺機器,因此您有多個配置集。爲了方便管理,他們可以命名爲settings-$hostname.rb。然後,您可以簡單地將適當的文件符號鏈接到settings-custom.rb。例如,在UNIX上:

ln -s settings-`hostname`.rb settings-custom.rb 

如果你使用源代碼控制,您可以跟蹤所有的配置集,而忽略settings-custom.rb(因爲它只是一個符號鏈接,並且不需要被跟蹤) - 與此方法,您不需要更改機器之間的任何代碼。

相關問題