aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDieter Komendera <dieter@komendera.com>2011-12-18 20:43:36 +0100
committerDieter Komendera <dieter@komendera.com>2011-12-18 20:43:36 +0100
commita2249eee760a84385dd5af8d9ee084123bc173e3 (patch)
tree1a4651519f3ea8fe7e53ebec12877c53d6f291aa
parentaa92d3732cdc75c4b5788233cb86148c04871d0d (diff)
downloadrails-a2249eee760a84385dd5af8d9ee084123bc173e3.tar.gz
rails-a2249eee760a84385dd5af8d9ee084123bc173e3.tar.bz2
rails-a2249eee760a84385dd5af8d9ee084123bc173e3.zip
Rename STRUCTURE to DB_STRUCTURE, update dump task description and add simple testcase.
-rw-r--r--activerecord/lib/active_record/railties/databases.rake6
-rw-r--r--railties/test/application/rake_test.rb8
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