Where do you put your app-config-files when deploying rails with capistrano and svn

浪尽此生 提交于 2020-01-01 03:04:30

问题


I have two config-files

/app/config/database.yml

and

/app/config/userconfig.yml

i don't want to put the database credentials and userconfig in the svn-repository, so i have database.yml.dist and userconfig.yml.dist checked in.

What is the best way to get copys of the dist-files in the shared-directory when deploying the app for the first time?

For later deploys i'll link to them from /app/current/config


回答1:


You should place your config files in

/path/to/deployed_app/shared

Then in a capistrano task, sym link to those files:

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"



回答2:


In Capistrano v3, you can use a task called deploy:symlink:shared.

Provide a list of files you placed in the shared directory, so Capistrano knows which files to symlink when the task is run. This is typically done in deploy.rb:

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

Related: Capistrano - How to put files in the shared folder?



来源:https://stackoverflow.com/questions/705054/where-do-you-put-your-app-config-files-when-deploying-rails-with-capistrano-and

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!