Skip to content
Browse files

fix, mysql `db:purge` respects `Rails.env`.

Previously this method always established a connection to the test database.
This resulted in buggy behavior when combined with other tasks like
`bin/rake db:schema:load`.

This was one of the reasons why #15394 (22e9a91)
was reverted:

> I’ve replicated it on a new app by the following commands: 1) rails
  generate model post:title, 2) rake db:migrate, 3) rake
  db:schema:load, 4) rails runner ‘puts Post.first’. The last command
  goes boom. Problem is that rake db:schema:load wipes the database,
  and then doesn’t actually restore it. This is all on MySQL. There’s
  no problem with SQLite.

  -- DHH

  • Loading branch information...
1 parent a208fb7 commit 091b246bb0111357edbb9703ea342a944b04deb6 @senny senny committed Jul 24, 2014
Showing with 5 additions and 1 deletion.
  1. +4 −0 activerecord/
  2. +1 −1 activerecord/lib/active_record/tasks/mysql_database_tasks.rb
4 activerecord/
@@ -1,3 +1,7 @@
+* `db:purge` with MySQL respects `Rails.env`.
+ *Yves Senn*
* `change_column_default :table, :column, nil` with PostgreSQL will issue a
`DROP DEFAULT` instead of a `DEFAULT NULL` query.
2 activerecord/lib/active_record/tasks/mysql_database_tasks.rb
@@ -42,7 +42,7 @@ def drop
def purge
- establish_connection :test
+ establish_connection configuration
connection.recreate_database configuration['database'], creation_options

0 comments on commit 091b246

Please sign in to comment.
Something went wrong with that request. Please try again.