database.yml部署最佳实践

rob*_*kos 21 deployment capistrano ruby-on-rails

我没有将我的database.yml文件检查到源代码控制中,我想知道其他人在部署时将此文件复制到服务器的做法/最佳做法.

我使用Capistrano进行部署.

Jak*_*sey 17

目前,我保留了一个名为shared的共享文件夹,它位于我的deply_to dirs之外.我保留了我的database.yml和其他配置文件,并在部署期间有一个钩子到cp那些.这是我执行复制的简单上限任务:

after "deploy:update_code","deploy:config_symlink"

namespace :deploy do

  task :config_symlink do
    run "cp #{shared_path}/../../shared/database.yml #{release_path}/config/database.yml"
  end
end
Run Code Online (Sandbox Code Playgroud)

  • 这是相当常见的,可以保留一些生产密码不受源代码控制.不过,我不确定你为什么要退出shared_pa​​th.而且我宁愿而不是cp. (2认同)

Dan*_*gan 9

我的部署脚本正在使用after "deploy:update_code"钩子,因为该步骤似乎已经尝试访问数据库.所以我这样做:

before "deploy:assets:precompile", 'deploy:symlink_shared'

namespace :deploy do

  task :symlink_shared do
    run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml"
  end
end
Run Code Online (Sandbox Code Playgroud)