aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/connection_specification.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/connection_specification.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/connection_specification.rb13
1 files changed, 12 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/connection_specification.rb b/activerecord/lib/active_record/connection_adapters/connection_specification.rb
index 64fc9e95d8..66d7f04fc3 100644
--- a/activerecord/lib/active_record/connection_adapters/connection_specification.rb
+++ b/activerecord/lib/active_record/connection_adapters/connection_specification.rb
@@ -69,11 +69,22 @@ module ActiveRecord
config = URI.parse url
adapter = config.scheme
adapter = "postgresql" if adapter == "postgres"
+
+ database = if adapter == 'sqlite3'
+ if '/:memory:' == config.path
+ ':memory:'
+ else
+ config.path
+ end
+ else
+ config.path.sub(%r{^/},"")
+ end
+
spec = { :adapter => adapter,
:username => config.user,
:password => config.password,
:port => config.port,
- :database => config.path.sub(%r{^/},""),
+ :database => database,
:host => config.host }
spec.reject!{ |_,value| value.blank? }