aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEileen M. Uchitelle <eileencodes@users.noreply.github.com>2018-08-29 11:07:01 -0400
committerGitHub <noreply@github.com>2018-08-29 11:07:01 -0400
commit55133a0e8e618ae9c21e842dcc5554d1a46eb79a (patch)
tree85e79065acb3490a746bc20a187c9ff973f793eb
parent068fe7dc9045856b822833db5cb7cb690e6000d7 (diff)
parent6b5df90fb56d86f0cd04a27a94dfe876e21fa001 (diff)
downloadrails-55133a0e8e618ae9c21e842dcc5554d1a46eb79a.tar.gz
rails-55133a0e8e618ae9c21e842dcc5554d1a46eb79a.tar.bz2
rails-55133a0e8e618ae9c21e842dcc5554d1a46eb79a.zip
Merge pull request #33748 from eileencodes/fix-erb-loading-issue-with-db-yaml
Drop load_database_yaml and fix test
-rw-r--r--activerecord/lib/active_record/tasks/database_tasks.rb2
-rw-r--r--railties/lib/rails/application/configuration.rb12
-rw-r--r--railties/test/application/rake/dbs_test.rb10
3 files changed, 8 insertions, 16 deletions
diff --git a/activerecord/lib/active_record/tasks/database_tasks.rb b/activerecord/lib/active_record/tasks/database_tasks.rb
index fd36c0abd2..62c5adac2b 100644
--- a/activerecord/lib/active_record/tasks/database_tasks.rb
+++ b/activerecord/lib/active_record/tasks/database_tasks.rb
@@ -135,7 +135,7 @@ module ActiveRecord
end
def for_each
- databases = Rails.application.config.load_database_yaml
+ databases = Rails.application.config.database_configuration
database_configs = ActiveRecord::DatabaseConfigurations.configs_for(Rails.env, databases)
# if this is a single database application we don't want tasks for each primary database
diff --git a/railties/lib/rails/application/configuration.rb b/railties/lib/rails/application/configuration.rb
index 9eb07219e0..f4cbd2b9d0 100644
--- a/railties/lib/rails/application/configuration.rb
+++ b/railties/lib/rails/application/configuration.rb
@@ -168,18 +168,6 @@ module Rails
end
end
- # Loads the database YAML without evaluating ERB. People seem to
- # write ERB that makes the database configuration depend on
- # Rails configuration. But we want Rails configuration (specifically
- # `rake` and `rails` tasks) to be generated based on information in
- # the database yaml, so we need a method that loads the database
- # yaml *without* the context of the Rails application.
- def load_database_yaml # :nodoc:
- path = paths["config/database"].existent.first
- return {} unless path
- YAML.load_file(path.to_s)
- end
-
# Loads and returns the entire raw configuration of database from
# values stored in <tt>config/database.yml</tt>.
def database_configuration
diff --git a/railties/test/application/rake/dbs_test.rb b/railties/test/application/rake/dbs_test.rb
index 0594236b1f..5dbdd669d6 100644
--- a/railties/test/application/rake/dbs_test.rb
+++ b/railties/test/application/rake/dbs_test.rb
@@ -52,17 +52,21 @@ module ApplicationTests
test "db:create and db:drop respect environment setting" do
app_file "config/database.yml", <<-YAML
development:
- database: <%= Rails.application.config.database %>
+ database: db/development.sqlite3
adapter: sqlite3
YAML
app_file "config/environments/development.rb", <<-RUBY
Rails.application.configure do
- config.database = "db/development.sqlite3"
+ config.read_encrypted_secrets = true
end
RUBY
- db_create_and_drop "db/development.sqlite3", environment_loaded: false
+ app "development"
+
+ assert_equal true, Rails.application.config.read_encrypted_secrets
+
+ db_create_and_drop "db/development.sqlite3"
end
def with_database_existing