aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2013-01-31 03:22:31 -0800
committerCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2013-01-31 03:22:31 -0800
commit18e889f91baf3146055b1a0e7c661310ba232ab4 (patch)
treef1890aeeb91a011491e5b0bfd38f376af20604e5 /activerecord
parent9ec14c223b787d04b381511799b9b21499e29e68 (diff)
parenta257d4818a0f95b0b2521146d53b5f5bce3f5c60 (diff)
downloadrails-18e889f91baf3146055b1a0e7c661310ba232ab4.tar.gz
rails-18e889f91baf3146055b1a0e7c661310ba232ab4.tar.bz2
rails-18e889f91baf3146055b1a0e7c661310ba232ab4.zip
Merge pull request #9119 from dazuma/database_tasks_for_unknown_adapter
Raise an exception with a useful message if a rake task is requested for an unknown adapter
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/tasks/database_tasks.rb4
-rw-r--r--activerecord/test/cases/tasks/database_tasks_test.rb6
2 files changed, 10 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/tasks/database_tasks.rb b/activerecord/lib/active_record/tasks/database_tasks.rb
index 67c7e714e6..4fa7cf8a7d 100644
--- a/activerecord/lib/active_record/tasks/database_tasks.rb
+++ b/activerecord/lib/active_record/tasks/database_tasks.rb
@@ -1,6 +1,7 @@
module ActiveRecord
module Tasks # :nodoc:
class DatabaseAlreadyExists < StandardError; end # :nodoc:
+ class DatabaseNotSupported < StandardError; end # :nodoc:
module DatabaseTasks # :nodoc:
extend self
@@ -121,6 +122,9 @@ module ActiveRecord
def class_for_adapter(adapter)
key = @tasks.keys.detect { |pattern| adapter[pattern] }
+ unless key
+ raise DatabaseNotSupported, "Rake tasks not supported by '#{adapter}' adapter"
+ end
@tasks[key]
end
diff --git a/activerecord/test/cases/tasks/database_tasks_test.rb b/activerecord/test/cases/tasks/database_tasks_test.rb
index 659d5eae72..3bfbc92afd 100644
--- a/activerecord/test/cases/tasks/database_tasks_test.rb
+++ b/activerecord/test/cases/tasks/database_tasks_test.rb
@@ -31,6 +31,12 @@ module ActiveRecord
ActiveRecord::Tasks::DatabaseTasks.register_task(/foo/, klazz)
ActiveRecord::Tasks::DatabaseTasks.structure_dump({'adapter' => :foo}, "awesome-file.sql")
end
+
+ def test_unregistered_task
+ assert_raise(ActiveRecord::Tasks::DatabaseNotSupported) do
+ ActiveRecord::Tasks::DatabaseTasks.structure_dump({'adapter' => :bar}, "awesome-file.sql")
+ end
+ end
end
class DatabaseTasksCreateTest < ActiveRecord::TestCase