method
database_configuration
v6.0.0 -
Show latest stable
- Class:
Rails::Application::Configuration
database_configuration()public
Loads and returns the entire raw configuration of database from values stored in config/database.yml.
# File railties/lib/rails/application/configuration.rb, line 220
def database_configuration
path = paths["config/database"].existent.first
yaml = Pathname.new(path) if path
config = if yaml && yaml.exist?
require "yaml"
require "erb"
loaded_yaml = YAML.load(ERB.new(yaml.read).result) || {}
shared = loaded_yaml.delete("shared")
if shared
loaded_yaml.each do |_k, values|
values.reverse_merge!(shared)
end
end
Hash.new(shared).merge(loaded_yaml)
elsif ENV["DATABASE_URL"]
# Value from ENV['DATABASE_URL'] is set to default database connection
# by Active Record.
{}
else
raise "Could not load database configuration. No such file - #{paths["config/database"].instance_variable_get(:@paths)}"
end
config
rescue Psych::SyntaxError => e
raise "YAML syntax error occurred while parsing #{paths["config/database"].first}. " "Please note that YAML must be consistently indented using spaces. Tabs are not allowed. " "Error: #{e.message}"
rescue => e
raise e, "Cannot load database configuration:\n#{e.message}", e.backtrace
end Related methods
- Instance methods
- annotations
- api_only=
- autoloader=
- colorize_logging
- colorize_logging=
- content_security_policy
- database_configuration
- debug_exception_response_format
- default_log_file
- encoding=
- load_database_yaml
- load_defaults
- paths
- session_store
- session_store?
- Class methods
- new
- Private methods
-
credentials_available_for_current_env? -
default_credentials_content_path -
default_credentials_key_path