circleci-demo-ruby-rails
circleci-demo-ruby-rails copied to clipboard
Same database used in development and test
I can see how this makes setting up CI easier but, in development this configuration will overwrite the development database on every test run. This example is both counterintuitive and against good practice.
- https://github.com/CircleCI-Public/circleci-demo-ruby-rails/blob/master/config/database.yml#L28
- https://github.com/CircleCI-Public/circleci-demo-ruby-rails/blob/master/config/database.yml#L62
Doing a bundle exec rake db:setup
confirms this:
$ bundle exec rake db:setup
Created database 'rails_blog'
Database 'rails_blog' already exists
-- enable_extension("plpgsql")
-> 0.0291s
-- create_table("posts", {:force=>:cascade})
-> 0.0118s
-- enable_extension("plpgsql")
-> 0.0255s
-- create_table("posts", {:force=>:cascade})
-> 0.1633s
Different database names should be used for each environment.
That's an rails issue, that's why you call it bundle exec rake db:setup RAILS_ENV=test