Git的。如何同时移动用户上传的文件?

时间:2012-01-18 23:27:49

标签: ruby ruby-on-rails-3 git capistrano

我有一个应用程序,允许用户使用Rails Carrierwave上传PDF文档。当我使用cap:deploy进行部署时,生产服务器上的uploads目录不会被包含在内以便移动到新版本。我怎么还包括它?

1 个答案:

答案 0 :(得分:4)

不要移动文件。而是创建shared目录的符号链接,该符号链接在部署之间持续存在。

典型示例是在每次部署后将shared/uploads目录与public/uploads进行符号链接。请务必在public/uploads中将.gitignore设置为已忽略,以避免在部署时发生冲突。在创建符号链接之前,您还可以rm -rf目录。

符号链接操作看起来大致如下:

run "ln -s #{shared_path}/uploads #{release_path}/public/uploads"

您可以为此添加单独的任务,或者只是在正确的位置将其附加到现有任务。