2

目前,我们在允许用户上传文件的站点(browsercms)中运行 CMS 时遇到问题。但是,每次我进行部署 Capistrano 都会运行硬重置,从而破坏所有上传的文件。

有没有人对如何防止硬重置有任何建议,只需进行拉动,或者将上传的文件移动到其他地方,而无需更改应用程序代码?

4

3 回答 3

2

这不太符合您“无需更改应用程序代码”的标准。

但是,在遇到类似问题后,我将上传的图像从目录转移/public/images/public/system/images/public/system每个 capistrano 部署都没有“版本化”的目录,因此图像仍然存在。

可能是导致问题的capistrano“版本控制” (而不是git reset)

于 2009-05-12T10:37:06.840 回答
2

这可能不是正确的方法。

您应该在 .gitignore 中包含“图像”文件夹,并将 $current_release/images 文件夹符号链接到 $shared/images。

如果您放入 deploy.rb,这可能会在每次部署时自动完成:

task :link_imgs do     
  run "ln -s #{shared_path}/photos #{release_path}/photos" 
end    

after "deploy:update_code", :link_imgs

我对我的 CMS 做了同样的事情,它就像一个魅力

于 2009-07-20T22:31:38.317 回答
0

上限部署调用部署:更新部署:重新启动

deploy:update进行版本控制,复制内容

deploy:restart进行真正的重启,在您方便时重载它,通常在您的config/deploy.rb文件中

namespace :deploy do
    desc "Softly restart the server"
    task :restart, :roles => :app, :except => { :no_release => true } do
      my_own.restart_recipe
    end  
end
于 2009-05-12T10:46:01.630 回答