circleci-demo-ruby-rails icon indicating copy to clipboard operation
circleci-demo-ruby-rails copied to clipboard

Same database used in development and test

Open xymbol opened this issue 6 years ago • 1 comments

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.

xymbol avatar Jun 26 '18 23:06 xymbol

That's an rails issue, that's why you call it bundle exec rake db:setup RAILS_ENV=test

krtschmr avatar Oct 14 '19 06:10 krtschmr