我有想法将我的应用程序配置为使用不同的 gemset 进行登台和生产。我的想法是,通过将环境拆分为单独的 gemset,当/如果我需要更新 gems/ruby/rails 时,我将有更多的自由。我将能够做出这种改变,并在不影响生产应用程序/gemset 的情况下在暂存时测试整个事情。
为此,我将在服务器上有两个文件,一个位于每个环境的共享目录中,名为 rvmrc。这包含rvm use ree-1.8.7-2012.02@appname-production --create
用于生产和rvm use ree-1.8.7-2012.02@appname-staging --create
登台。
我会在部署脚本中包含一个任务,以将相应的shared/rvmrc
文件链接到应用程序中.rvmrc
:
namespace :deploy do
task :rvmrc do
run "rm #{latest_release}/.rvmrc; ln -s #{shared_path}/rvmrc #{latest_release}/.rvmrc"
end
end
before "bundle:install", "deploy:rvmrc"
这实际上是一个好主意,还是我把事情复杂化了?