diff options
author | José Valim <jose.valim@plataformatec.com.br> | 2013-03-02 13:52:32 -0700 |
---|---|---|
committer | José Valim <jose.valim@plataformatec.com.br> | 2013-03-02 13:52:32 -0700 |
commit | dd5a80dc3da794f9296ec199c492a398589257a0 (patch) | |
tree | d4a667acef6652dda40a117628120ac9f789192f | |
parent | c09f934dcb2d02763777e7fd025cdc33bc8ec8bb (diff) | |
download | rails-dd5a80dc3da794f9296ec199c492a398589257a0.tar.gz rails-dd5a80dc3da794f9296ec199c492a398589257a0.tar.bz2 rails-dd5a80dc3da794f9296ec199c492a398589257a0.zip |
Remove hard coded references to Active Record in railties
5 files changed, 11 insertions, 23 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/connection_specification.rb b/activerecord/lib/active_record/connection_adapters/connection_specification.rb index 2c683fc3ac..8bad7d0cf5 100644 --- a/activerecord/lib/active_record/connection_adapters/connection_specification.rb +++ b/activerecord/lib/active_record/connection_adapters/connection_specification.rb @@ -38,7 +38,7 @@ module ActiveRecord private def resolve_string_connection(spec) # :nodoc: hash = configurations.fetch(spec) do |k| - self.class.connection_url_to_hash(k) + connection_url_to_hash(k) end raise(AdapterNotSpecified, "#{spec} database is not configured") unless hash @@ -65,7 +65,7 @@ module ActiveRecord ConnectionSpecification.new(spec, adapter_method) end - def self.connection_url_to_hash(url) # :nodoc: + def connection_url_to_hash(url) # :nodoc: config = URI.parse url adapter = config.scheme adapter = "postgresql" if adapter == "postgres" diff --git a/activerecord/lib/active_record/railtie.rb b/activerecord/lib/active_record/railtie.rb index 64eac3aca7..13f3bf7085 100644 --- a/activerecord/lib/active_record/railtie.rb +++ b/activerecord/lib/active_record/railtie.rb @@ -152,7 +152,7 @@ module ActiveRecord # and then establishes the connection. initializer "active_record.initialize_database" do |app| ActiveSupport.on_load(:active_record) do - self.configurations = app.config.database_configuration + self.configurations = app.config.database_configuration || {} establish_connection end end diff --git a/activerecord/lib/active_record/railties/databases.rake b/activerecord/lib/active_record/railties/databases.rake index f36af7182f..d92e268109 100644 --- a/activerecord/lib/active_record/railties/databases.rake +++ b/activerecord/lib/active_record/railties/databases.rake @@ -2,7 +2,7 @@ require 'active_record' db_namespace = namespace :db do task :load_config do - ActiveRecord::Base.configurations = Rails.application.config.database_configuration + ActiveRecord::Base.configurations = Rails.application.config.database_configuration || {} ActiveRecord::Migrator.migrations_paths = Rails.application.paths['db/migrate'].to_a if defined?(ENGINE_PATH) && engine = Rails::Engine.find(ENGINE_PATH) diff --git a/railties/lib/rails/application/configuration.rb b/railties/lib/rails/application/configuration.rb index 17763b39c5..8abd2dc572 100644 --- a/railties/lib/rails/application/configuration.rb +++ b/railties/lib/rails/application/configuration.rb @@ -98,14 +98,15 @@ module Rails end # Loads and returns the configuration of the database. - # First, looks at If ENV['DATABASE_URL'] if it's not present it uses the #paths["config/database"] - # The contents of the file are processed via ERB before being sent through YAML::load. def database_configuration - if ENV['DATABASE_URL'] - {Rails.env => ActiveRecord::ConnectionAdapters::ConnectionSpecification::Resolver.connection_url_to_hash(ENV['DATABASE_URL']).stringify_keys} + yaml = paths["config/database"].first + if File.exists?(yaml) + require "erb" + YAML.load ERB.new(IO.read(yaml)).result + elsif ENV['DATABASE_URL'] + nil else - require 'erb' - YAML.load ERB.new(IO.read(paths["config/database"].first)).result + raise "Could not load database configuration. No such file - #{yaml}" end rescue Psych::SyntaxError => e raise "YAML syntax error occurred while parsing #{paths["config/database"].first}. " \ diff --git a/railties/test/application/rake/dbs_test.rb b/railties/test/application/rake/dbs_test.rb index 820b838702..9e711f25bd 100644 --- a/railties/test/application/rake/dbs_test.rb +++ b/railties/test/application/rake/dbs_test.rb @@ -166,19 +166,6 @@ module ApplicationTests require "#{app_path}/config/environment" db_test_load_structure end - - test 'db:test:load_structure with database_url' do - old_rails_env = ENV["RAILS_ENV"] - ENV["RAILS_ENV"] = 'test' - - begin - require "#{app_path}/config/environment" - set_database_url - db_test_load_structure - ensure - ENV["RAILS_ENV"] = old_rails_env - end - end end end end |