What's the best way to handle the Rails database.yml if multiple people are working on the project and database locations are different (the socket in particular).
When deploying, the convention is to create this database. yml file in /shared/config directly on the server.
Rails defaults to using a SQLite database when creating a new project, but you can always change it later.
database.yml
to a template file.If you're on Git:
git mv config/database.yml config/database.yml.example git commit -m "moved database.yml to an example file"
Or, if you're on Subversion:
svn move config/database.yml config/database.yml.example svn ci -m "moved database.yml to an example file"
If you're on Git:
cat > .gitignore config/database.yml git add .gitignore git commit -m "ignored database.yml"
If you're on Subversion:
svn propset svn:ignore config "database.yml"
script/plugin install git://github.com/technicalpickles/wheres-your-database-yml-dude
That plugin alerts developers before any Rake tasks are run if they haven't created their own local version of 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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With