class Rails::Application::Configuration

def database_configuration

values stored in config/database.yml.
Loads and returns the entire raw configuration of database from
def database_configuration
  path = paths["config/database"].existent.first
  yaml = Pathname.new(path) if path
  config = if yaml&.exist?
    loaded_yaml = ActiveSupport::ConfigurationFile.parse(yaml)
    if (shared = loaded_yaml.delete("shared"))
      loaded_yaml.each do |env, config|
        if config.is_a?(Hash) && config.values.all?(Hash)
          if shared.is_a?(Hash) && shared.values.all?(Hash)
            config.map do |name, sub_config|
              sub_config.reverse_merge!(shared[name])
            end
          else
            config.map do |name, sub_config|
              sub_config.reverse_merge!(shared)
            end
          end
        else
          config.reverse_merge!(shared)
        end
      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 => e
  raise e, "Cannot load database configuration:\n#{e.message}", e.backtrace
end