2009-05-12 3 views
2

У меня проблема в момент, когда мы запускаем CMS на сайте (браузерные), который позволяет пользователю загружать файлы. Тем не менее, каждый раз, когда я делаю разворот, Capistrano запускает жесткий сброс, тем самым уничтожая любые загруженные файлы .Развертывание из Git с помощью Capistrano без жесткого сброса?

Есть ли у кого-нибудь какие-либо предложения относительно того, как предотвратить жесткий сброс, и просто сделать попытку или способ перемещения загруженных файлов в другом месте, без изменения кода приложения?

ответ

2

Это может быть неправильный подход.

Вы должны включить свою папку «images» в свой .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, и он работает как шарм

2

Это не совсем соответствует вашим критериям "без изменения кода приложения".

Однако после запуска в подобную проблему я сдвинутая мое загруженное изображение из /public/images/public/system/images в каталоге /public/system не «версионируются» каждого развертывания Capistrano поэтому изображения выжить.

Может ли это быть версией capistrano, вызывающей проблему (вместо сброса git)?

+0

Ах да, вы может быть там. Возможно, мне нужно сделать каталог загрузок «общим». –

+1

Это предпочтительное решение Capistrano, поэтому по умолчанию оно символизирует текущую/общедоступную/систему для общих/системных. Paperclip и некоторые другие плагины здесь хранят по умолчанию для этого rason. В управляемых моделях AttachmentFu потребуется изменение «upload_path» для каждой модели. –

0

крышка развернуть называет развёртывания: обновление и развёртывания: перезапуск

развёртывание: обновление делает управление версиями, копирование StuFF

Deploy: перезапустить делает истинный перезапуск, перегрузка это на вашем совещании, обычно в вашем 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