diff options
-rw-r--r-- | activerecord/lib/active_record/railties/databases.rake | 6 | ||||
-rw-r--r-- | railties/test/application/rake_test.rb | 8 |
2 files changed, 11 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/railties/databases.rake b/activerecord/lib/active_record/railties/databases.rake index 12ef100aa6..1dc17840fa 100644 --- a/activerecord/lib/active_record/railties/databases.rake +++ b/activerecord/lib/active_record/railties/databases.rake @@ -371,10 +371,10 @@ db_namespace = namespace :db do end namespace :structure do - desc 'Dump the database structure to an SQL file' + desc 'Dump the database structure to db/structure.sql. Specify an alternative file (eg. db/my_strcuture.sql) using DB_STRUCTURE=db/my_strcuture.sql' task :dump => :environment do abcs = ActiveRecord::Base.configurations - filename = ENV['STRUCTURE'] || File.join(Rails.root, "db", "structure.sql") + filename = ENV['DB_STRUCTURE'] || File.join(Rails.root, "db", "structure.sql") case abcs[Rails.env]['adapter'] when /mysql/, 'oci', 'oracle' ActiveRecord::Base.establish_connection(abcs[Rails.env]) @@ -410,7 +410,7 @@ db_namespace = namespace :db do env = ENV['RAILS_ENV'] || 'test' abcs = ActiveRecord::Base.configurations - filename = ENV['STRUCTURE'] || File.join(Rails.root, "db", "structure.sql") + filename = ENV['DB_STRUCTURE'] || File.join(Rails.root, "db", "structure.sql") case abcs[env]['adapter'] when /mysql/ ActiveRecord::Base.establish_connection(abcs[env]) diff --git a/railties/test/application/rake_test.rb b/railties/test/application/rake_test.rb index 4e406f23d2..d4d4e4e5ff 100644 --- a/railties/test/application/rake_test.rb +++ b/railties/test/application/rake_test.rb @@ -133,5 +133,13 @@ module ApplicationTests assert_match(/7 tests, 10 assertions, 0 failures, 0 errors/, content) end + + def test_rake_dump_structure_should_respect_db_structure_env_variable + Dir.chdir(app_path) do + `bundle exec rake db:migrate` # ensure we have a schema_migrations table to dump + `bundle exec rake db:structure:dump DB_STRUCTURE=db/my_structure.sql` + end + assert File.exists?(File.join(app_path, 'db', 'my_structure.sql')) + end end end |