在每台机器的基础上更改Sinatra设置



我的开发机器与我的部署/生产服务器在某些方面是不同的,不能更改。(例如,我的开发机器有运行在不同端口上的多个版本的数据库服务器,而每个生产服务器只有一个运行的RDBMS版本,每个实例运行在默认端口上。)

在不同的机器上配置不同的Sinatra web应用程序有哪些技术可用?理想情况下,答案将总结多种方法,并突出显示对应答者最有效的一种方法。任何基于文件的解决方案还应该(理想情况下)讨论如何在两台机器之间存在统一的源代码控制存储库时处理这种情况。

请注意,这个问题/问题与配置开发模式和生产模式是正交的。

一个解决方案是加载两个配置文件:第一个是主配置文件(我们说,settings.rb),然后是一个特定于机器的配置文件,它将覆盖必要的设置(settings-custom.rb)。

当然,因为您有多台机器,所以您有多个配置集。为便于管理,可将其命名为settings-$hostname.rb。然后,您可以简单地将适当的文件符号链接到settings-custom.rb。例如,在unix上:

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

如果您使用源代码管理,您可以跟踪所有的配置集,并忽略settings-custom.rb(因为它只是一个符号链接,不需要被跟踪)——使用这种方法,您不需要在机器之间更改任何代码。

最新更新