如果多个人在项目上工作并且数据库位置不同(特别是套接字),那么处理Rails database.yml的最佳方法是什么。
Answers:
database.yml
模板文件。如果您使用的是Git:
git mv config/database.yml config/database.yml.example
git commit -m "moved database.yml to an example file"
或者,如果您使用Subversion:
svn move config/database.yml config/database.yml.example
svn ci -m "moved database.yml to an example file"
如果您使用的是Git:
cat > .gitignore
config/database.yml
git add .gitignore
git commit -m "ignored database.yml"
如果您使用Subversion:
svn propset svn:ignore config "database.yml"
script/plugin install git://github.com/technicalpickles/wheres-your-database-yml-dude
如果开发人员尚未创建自己的本地版本,该插件会在运行Rake任务之前提醒开发人员config/database.yml
。
# in RAILS_ROOT/config/deploy.rb:
after 'deploy:update_code', 'deploy:symlink_db'
namespace :deploy do
desc "Symlinks the database.yml"
task :symlink_db, :roles => :app do
run "ln -nfs #{deploy_to}/shared/config/database.yml #{release_path}/config/database.yml"
end
end
scp config/database.yml user@my_server.com:/path_to_rails_app/shared/config/database.yml
cat >> .gitignore
改为使用。因为否则您将吹走现有文件...
您可以使用svn:ignore属性来防止对该文件进行版本控制。
在部署期间,使用Capistrano ERb提示输入凭据的另一种方法。
http://www.simonecarletti.com/blog/2009/06/capistrano-and-database-yml/