目前,我们在允许用户上传文件的站点(browsercms)中运行 CMS 时遇到问题。但是,每次我进行部署 Capistrano 都会运行硬重置,从而破坏所有上传的文件。
有没有人对如何防止硬重置有任何建议,只需进行拉动,或者将上传的文件移动到其他地方,而无需更改应用程序代码?
目前,我们在允许用户上传文件的站点(browsercms)中运行 CMS 时遇到问题。但是,每次我进行部署 Capistrano 都会运行硬重置,从而破坏所有上传的文件。
有没有人对如何防止硬重置有任何建议,只需进行拉动,或者将上传的文件移动到其他地方,而无需更改应用程序代码?
这不太符合您“无需更改应用程序代码”的标准。
但是,在遇到类似问题后,我将上传的图像从目录转移/public/images
到/public/system/images
了/public/system
每个 capistrano 部署都没有“版本化”的目录,因此图像仍然存在。
可能是导致问题的capistrano“版本控制” (而不是git reset)?
这可能不是正确的方法。
您应该在 .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 做了同样的事情,它就像一个魅力
上限部署调用部署:更新和部署:重新启动
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