在Capistrano中处理用户上传的内容

时间:2012-12-19 15:47:45

标签: git version-control capistrano

我已经设置了capistrano用于部署到登台和生产服务器。困扰我的最后一件事是如何处理用户上传的内容 - 目前,我的上传文件夹及其内容在我的git仓库中进行了版本控制。我想做的是,如果可能而且不是不好的做法,是使用部署脚本来执行常规部署,还可以通过向脚本添加任务来将prod服务器上的任何新上传内容推送到repo。

这是明智的/可能的举动吗?你们通常如何处理这类事情?

1 个答案:

答案 0 :(得分:0)

您应该将内容与代码库分开。

一种策略是将您的内容存储在部署端点(在服务器上,随着应用程序的使用将在一段时间内构建),并在部署期间将内容存储到capistrano符号链接。

假设您在“{rails_root} / public”中有一个名为“uploads”的文件夹 - 您可以在部署配方中添加以下内容:

# Create a symlink to our 'uploads' folder
namespace :deploy do
  task :symlink_uploads, :roles => :app do
    run "ln -s #{deploy_to}/shared/uploads #{release_path}/public/uploads"
  end
end
after "deploy:update_code", "deploy:symlink_uploads"