我的开发机器在某些方面与我的部署/生产服务器不同,无法更改。 (例如,我的开发机器有多个版本的数据库服务器在不同的端口上运行,而每个生产服务器只运行一个版本的RDBMS,每个实例都在默认端口上运行。)
有哪些技术可用于在一台计算机上以不同方式配置Sinatra Web应用程序?理想情况下,答案将总结多种方法,并突出显示最适合受访者的方法。任何基于文件的解决方案也应该(理想情况下)讨论如何在两台机器之间存在统一的源控制存储库的情况下处理这种情况。
请注意,此问题/问题与配置开发模式与生产模式正交。
答案 0 :(得分:3)
一种解决方案是加载两个配置文件:第一个,主要的一个(比方说,settings.rb
),然后是机器特定的一个,它将覆盖必要的设置(settings-custom.rb
)。
当然,由于您有多台计算机,因此您有多个配置集。为了轻松管理它们,可以将它们命名为settings-$hostname.rb
。然后,您可以简单地将相应的文件符号链接到settings-custom.rb
。例如,在unix上:
ln -s settings-`hostname`.rb settings-custom.rb
如果您使用源代码管理,则可以跟踪所有配置集,并忽略settings-custom.rb
(因为它只是一个符号链接,不需要跟踪) - 使用此方法,您将不会需要更改机器之间的任何代码。