instance method
database_configuration
Ruby on Rails 7.1.6
Since v3.0.20Signature
database_configuration()
Loads and returns the entire raw configuration of database from values stored in config/database.yml.
Source
# File railties/lib/rails/application/configuration.rb, line 436
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
Defined in railties/lib/rails/application/configuration.rb line 436
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in Rails::Application::Configuration