Я использую Capistrano и мерзавца для развертывания приложения RoR. У меня есть папка, под которой у каждого пользователя есть их собственная папка. Когда пользователь загружает или сохранил файл, он сохраняется в их собственной папке.
Когда я развертываю новые версии кода к серверу, пользовательские файлы и папки перезаписываются с тем, что находится на моей dev машине.
Существует ли способ проигнорировать некоторые папки в capistrano, как мы делаем в мерзавце? Это сообщение - http://www.ruby-forum.com/topic/97539 - предлагает использовать символьные ссылки и хранить пользовательские файлы в совместно используемой папке. Но это - старое сообщение, таким образом, я задаюсь вопросом, существует ли лучший способ сделать это теперь.
Кроме того, кто-либо знает о каких-либо хороших скринкастах/учебных руководствах для рекомендации для использования RoR+git+capistrano?
Спасибо.
Вы должны переместить папки пользователя за пределы каталога Capistrano релизов
. Обычный подход заключается в том, чтобы Capistrano создавал символические ссылки на каталоги, которые должны сохраняться при развертывании.
Вот пример из моего приложения для блога config / deploy.rb
, в котором файлы для загрузки в сообщениях блога и изображения, используемые в сообщениях, хранятся в общем каталоге
:
after :deploy, 'deploy:link_dependencies'
namespace :deploy do
desc <<-DESC
Creates symbolic links to configuration files and other dependencies
after deployment.
DESC
task :link_dependencies, :roles => :app do
run "ln -nfs #{shared_path}/public/files #{release_path}/public/files"
run "ln -nfs #{shared_path}/public/images/posts #{release_path}/public/images/posts"
end
end