Куда вы помещаете свои файлы конфигурации приложений при развертывании рельсов с помощью capistrano и svn

У меня есть два файла конфигурации

/app/config/database.yml

а также

/app/config/userconfig.yml

я не хочу помещать учетные данные базы данных и userconfig в svn-репозиторий, поэтому у меня зарегистрированы database.yml.dist и userconfig.yml.dist.

Как лучше всего получить копии dist-файлов в общем каталоге при первом развертывании приложения?

Для более поздних развертываний я буду ссылаться на них из /app/current/config.


person Zoran Zaric    schedule 01.04.2009    source источник


Ответы (2)


Вы должны поместить свои файлы конфигурации в

/path/to/deployed_app/shared

Затем в задаче capistrano символическая ссылка на эти файлы:

namespace :deploy do
  task :symlink_shared do
    run "ln -s #{shared_path}/database.yml #{release_path}/config/"
  end
end

before "deploy:restart", "deploy:symlink_shared"
person erik    schedule 01.04.2009

В Capistrano v3 вы можете использовать задачу под названием deploy:symlink:shared.

Предоставьте список файлов, которые вы поместили в общий каталог, чтобы Capistrano знал, на какие файлы ссылаться при запуске задачи. Обычно это делается в deploy.rb:

set :linked_files, %w{
  app/config/database.yml
  app/config/userconfig.yml
}

См.: Capistrano — как поместить файлы в общую папка?

person Andrew    schedule 10.04.2014
comment
Однако Capistrano не предоставляет возможности загрузки этих файлов из вашего локального дерева, вам придется делать это вручную (обычно через SSH) или использовать пользовательскую задачу, как описано здесь: stackoverflow.com/a/23520809/814224 - person xuuso; 07.05.2014