aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
authorAkira Matsuda <ronnie@dio.jp>2014-09-10 19:25:01 +0900
committerAkira Matsuda <ronnie@dio.jp>2014-09-10 19:25:01 +0900
commited9d220cd1710fcfe74f61a092b8e3b42ed426da (patch)
treed0e96216dd4334837051594315fdb33a69a11ccf /railties
parent9e1a7398aa533be58647d555a9ba1897bacd7e40 (diff)
downloadrails-ed9d220cd1710fcfe74f61a092b8e3b42ed426da.tar.gz
rails-ed9d220cd1710fcfe74f61a092b8e3b42ed426da.tar.bz2
rails-ed9d220cd1710fcfe74f61a092b8e3b42ed426da.zip
Tell the user which file is missing when config/database.yml was not found
Since cc03675d30b58e28f585720dad14e947a57ff5b the error message became like "Could not load database configuration. No such file -" which doesn't really tell what's actually missing.
Diffstat (limited to 'railties')
-rw-r--r--railties/lib/rails/application/configuration.rb7
-rw-r--r--railties/test/application/configuration_test.rb9
2 files changed, 13 insertions, 3 deletions
diff --git a/railties/lib/rails/application/configuration.rb b/railties/lib/rails/application/configuration.rb
index 2c16b83f8a..786dcee007 100644
--- a/railties/lib/rails/application/configuration.rb
+++ b/railties/lib/rails/application/configuration.rb
@@ -93,9 +93,10 @@ module Rails
# Loads and returns the entire raw configuration of database from
# values stored in `config/database.yml`.
def database_configuration
- yaml = Pathname.new(paths["config/database"].existent.first || "")
+ path = paths["config/database"].existent.first
+ yaml = Pathname.new(path) if path
- config = if yaml.exist?
+ config = if yaml && yaml.exist?
require "yaml"
require "erb"
YAML.load(ERB.new(yaml.read).result) || {}
@@ -104,7 +105,7 @@ module Rails
# by Active Record.
{}
else
- raise "Could not load database configuration. No such file - #{yaml}"
+ raise "Could not load database configuration. No such file - #{paths["config/database"].instance_variable_get(:@paths)}"
end
config
diff --git a/railties/test/application/configuration_test.rb b/railties/test/application/configuration_test.rb
index db2106aed3..f8b4ee30d8 100644
--- a/railties/test/application/configuration_test.rb
+++ b/railties/test/application/configuration_test.rb
@@ -980,6 +980,15 @@ module ApplicationTests
assert_kind_of Hash, Rails.application.config.database_configuration
end
+ test 'raises with proper error message if no database configuration found' do
+ FileUtils.rm("#{app_path}/config/database.yml")
+ require "#{app_path}/config/environment"
+ err = assert_raises RuntimeError do
+ Rails.application.config.database_configuration
+ end
+ assert_match 'config/database', err.message
+ end
+
test 'config.action_mailer.show_previews defaults to true in development' do
Rails.env = "development"
require "#{app_path}/config/environment"