2011-07-19 21 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(因为它只是一个符号链接,并且不需要被跟踪) - 与此方法,您不需要更改机器之间的任何代码。

相关问题