Method: Rails::Application::Configuration#database_configuration
- Defined in:
- railties/lib/rails/application/configuration.rb
#database_configuration ⇒ Object
Loads and returns the entire raw configuration of database from values stored in config/database.yml.
431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 |
# File 'railties/lib/rails/application/configuration.rb', line 431 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.}", e.backtrace end |