aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2007-05-25 03:19:35 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2007-05-25 03:19:35 +0000
commitcb7a17a9d083082709f62ccbca3a2c1ef8e0c87b (patch)
tree4d5962fe53ccc6b637fa289a8566246e8b7b12ba /activerecord/lib/active_record/connection_adapters/abstract
parent162a4c5309d8fc1bc17c1ea5685704f07d80a783 (diff)
downloadrails-cb7a17a9d083082709f62ccbca3a2c1ef8e0c87b.tar.gz
rails-cb7a17a9d083082709f62ccbca3a2c1ef8e0c87b.tar.bz2
rails-cb7a17a9d083082709f62ccbca3a2c1ef8e0c87b.zip
Load database adapters on demand. Eliminates config.connection_adapters and RAILS_CONNECTION_ADAPTERS. Closes #8456.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6833 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb b/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb
index 1a76050872..918c29114c 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb
@@ -207,7 +207,12 @@ module ActiveRecord
spec = spec.symbolize_keys
unless spec.key?(:adapter) then raise AdapterNotSpecified, "database configuration does not specify adapter" end
adapter_method = "#{spec[:adapter]}_connection"
- unless respond_to?(adapter_method) then raise AdapterNotFound, "database configuration specifies nonexistent #{spec[:adapter]} adapter" end
+
+ require "active_record/connection_adapters/#{spec[:adapter]}_adapter"
+ unless respond_to?(adapter_method)
+ raise AdapterNotFound, "database configuration specifies nonexistent #{spec[:adapter]} adapter"
+ end
+
remove_connection
establish_connection(ConnectionSpecification.new(spec, adapter_method))
end