在Rails应用程序中使用多个git存储库隐藏db的密码

时间:2012-09-12 20:47:28

标签: ruby-on-rails ruby-on-rails-3 git github capistrano

我在GitHub和我的私有亚马逊实例上都有一个git存储库,并且我使用一个唯一的提交来更新它们。

有一种方法可以将文件database.yml仅提交到我的私有存储库而不是GitHub吗?

如果有帮助,我正在使用Capistrano进行部署。

2 个答案:

答案 0 :(得分:3)

在过去的几天里,我没有找到这个问题的答案,但后来我解决了我的问题,所以我会说我做了什么让事情有效。

由于我不必修改文件database.yml,我解决了手动将其复制到我的Amazon实例并将其添加到.gitignore的问题。

然后,我在deploy.rb中添加了一个任务,将database.yml链接到当前的部署目录

# copy db config
after "deploy:update_code", :copy_db_config
desc "copy db config file"
task :copy_db_config do
  run "ln -s ~/path/where/I/copied/database.yml #{release_path}/config/database.yml"
end

希望得到这个帮助。

答案 1 :(得分:0)

提供了另一种解决方案here。如果您之前定义了环境变量,则可以在databases.yml文件中使用它们。

username: <%= ENV['POSTGRES_USERNAME'] %>
password: <%= ENV['POSTGRES_PASSWORD'] %>