aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/railtie.rb
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@plataformatec.com.br>2013-12-23 12:28:04 -0800
committerJosé Valim <jose.valim@plataformatec.com.br>2013-12-23 12:28:04 -0800
commit33cb2f334db7d8c173a7f801a678fe5696169ed7 (patch)
tree2bb07cdaad4af8c43ccc891503630bbed12cbf89 /activerecord/lib/active_record/railtie.rb
parent7530c82e8257effa8ee3a7e0a2f7aed39502d201 (diff)
parent2d4cfb28408f53daea11f45fb5e0aebdce8963d3 (diff)
downloadrails-33cb2f334db7d8c173a7f801a678fe5696169ed7.tar.gz
rails-33cb2f334db7d8c173a7f801a678fe5696169ed7.tar.bz2
rails-33cb2f334db7d8c173a7f801a678fe5696169ed7.zip
Merge pull request #13463 from josevalim/jv-env
Do not store production information in .yml files
Diffstat (limited to 'activerecord/lib/active_record/railtie.rb')
-rw-r--r--activerecord/lib/active_record/railtie.rb15
1 files changed, 14 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/railtie.rb b/activerecord/lib/active_record/railtie.rb
index ff98c829f4..2c796f97e6 100644
--- a/activerecord/lib/active_record/railtie.rb
+++ b/activerecord/lib/active_record/railtie.rb
@@ -43,11 +43,24 @@ module ActiveRecord
namespace :db do
task :load_config do
ActiveRecord::Tasks::DatabaseTasks.db_dir = Rails.application.config.paths["db"].first
- ActiveRecord::Tasks::DatabaseTasks.database_configuration = Rails.application.config.database_configuration
ActiveRecord::Tasks::DatabaseTasks.migrations_paths = Rails.application.paths['db/migrate'].to_a
ActiveRecord::Tasks::DatabaseTasks.fixtures_path = File.join Rails.root, 'test', 'fixtures'
ActiveRecord::Tasks::DatabaseTasks.root = Rails.root
+ configuration = if ENV["DATABASE_URL"]
+ { Rails.env => ENV["DATABASE_URL"] }
+ else
+ Rails.application.config.database_configuration || {}
+ end
+
+ resolver = ActiveRecord::ConnectionAdapters::ConnectionSpecification::Resolver.new(configuration)
+
+ configuration.each do |key, value|
+ configuration[key] = resolver.resolve(value) if value
+ end
+
+ ActiveRecord::Tasks::DatabaseTasks.database_configuration = configuration
+
if defined?(ENGINE_PATH) && engine = Rails::Engine.find(ENGINE_PATH)
if engine.paths['db/migrate'].existent
ActiveRecord::Tasks::DatabaseTasks.migrations_paths += engine.paths['db/migrate'].to_a