2010-05-13 4 views
2

В ответ на это сообщение в блоге: http://www.simonecarletti.com/blog/2009/02/capistrano-uploads-folder/Noob Capistrano вопрос о сохранении загрузки каталогов

У меня есть три вопроса:

  1. Может кто-нибудь подтвердить, если рецепт там работает?
  2. Где и как я могу поместить этот рецепт?
  3. У меня есть две папки, которые необходимо оставить на каждой ревизии:/products and/public/images/site_images, какой рецепт я должен выполнить, чтобы добиться этого?

У меня почти нет опыта с Capistrano, и все, что я смог сделать до сих пор, было просто развертывание крышки и развертывание крышки: холодно, поэтому сценарий, который я мог бы просто скопировать-вставить, был бы весьма признателен.

Спасибо

+0

Я хотел бы знать, как расширить скрипт на многие папки. Есть идеи? –

+0

нет .. извините, я прекратил использовать capistrano и принимал все мои приложения на heroku – jaycode

ответ

0

Это, как я сделал это в конце концов, с помощью ручного подхода

Я надеюсь, что это поможет всем ранние кодеров там:

1. cd to releases to find out folder to synchronize 
cd /home/yourapp/rails_apps/main/releases/ 

2. find the folder to sync, one level above last folder shown with ls 
REMEMBER! 
With ls, the folder list goes as follows: 
folder1    folder5 
folder2    folder6 
folder3    folder7 
folder4    folder8 

So in this case, copy from folder7 

3. copy the folders 
To copy images 
rsync -av --stats --progress /home/yourapp/rails_apps/main/releases/20100517183232/public/images/ /home/yourapp/rails_apps/main/current/public/images/ 

To copy products 
rsync -av --stats --progress /home/yourapp/rails_apps/main/releases/20100517183232/products/ /home/yourapp/rails_apps/main/current/products/ 

Удивление, если они могут быть автоматизированы как-то?

3
  1. Да, я в настоящее время использовать его в своих проектах.

  2. Вы можете просто добавить код в конец файла deploy.rb

  3. Если продукция находится вне папки, вы не можете связать его с общественной стороны. Кроме того, общественные/изображения уже ожидаются, будет проверяться в репозиторий SCM

Рецепт предполагает, что вы хотите иметь совершенно новую папку доступную из стороны общественности на проведение загруженного пользователя документов. Папка должна быть исключена из вашей конфигурации SCM, чтобы предотвратить случайные коммиты. Вам следует избегать использования папки общего доступа/изображений для внешних загружаемых файлов или у вас будет много головных болей, пытающихся синхронизировать вашу конфигурацию разработки, управляемую SCM, с публичным состоянием.

+0

Привет, спасибо, что ответили на это (и ничего себе от автора этого поста). За # 3: Я знаю, что он не может быть связан с публичной стороны, на самом деле это должно быть так. Мой вопрос в том, что мне нужно изменить в рецепте, чтобы разрешить две папки? Я просто изменяю его на: Задача: symlink,: except => {: no_release => true} do Запуск «rm -rf # {release_path}/public/images» Запустить «ln -nfs # {shared_path}/изображения # {release_path}/государственный/изображения» запустить "ет -rf # {release_path}/продукты" запустить "пер -nfs # {shared_path}/продукты # {release_path}/продукты" конца Спасибо! – jaycode

+0

Привет, это не работает, оно удаляет папки, но ничего не выходит за рамки этого. Что-нибудь, что я могу сделать неправильно? – jaycode

Смежные вопросы