我不断开发我的rails应用程序并每隔1或2周部署一次。我有很多内容需要缓存很长一段时间。我切换到使用rails file_store进行缓存,因为其他缓存选项将缓存存储在内存中,当我必须重新启动乘客时,缓存会消失。我遇到的问题是每次部署更新时,无论如何我都会丢失缓存,即使它是基于文件的。在部署rails应用程序的更新时,有没有办法阻止缓存清除?我使用capistrano进行部署,使用git进行版本控制。
答案 0 :(得分:2)
在共享目录下创建一个目录来保存缓存。在deploy.rb中,为旧目录所在的新目录创建一个符号链接。例如,以下是我对日志目录进行符号链接的简化版本:
namespace :deploy do
desc "Re-link log files"
task :link_logs, :roles => :app do
run "ln -nfs '#{shared_path}/log' '#{current_path}/log'"
end
end
# Activate post-deploy re-linking
after 'deploy:symlink', 'deploy:link_logs'
现在,每当我部署时,我的日志在部署中都是连续的,并存储在: * /路径/到/ DEPLOY_DIR /共享/日志*