class ActiveRecord::DatabaseConfigurations::HashConfig

A HashConfig object is created for each database configuration entry that is created from a hash.

A hash config:

{ "development" => { "database" => "db_name" } }

Becomes:

#<ActiveRecord::DatabaseConfigurations::HashConfig:0x00007fd1acbded10
  @env_name="development", @name="primary", @config={database: "db_name"}>

Options

Attributes

configuration_hash[R]

Public Class Methods

new(env_name, name, configuration_hash) click to toggle source
Calls superclass method
# File lib/active_record/database_configurations/hash_config.rb, line 29
def initialize(env_name, name, configuration_hash)
  super(env_name, name)
  @configuration_hash = configuration_hash.symbolize_keys.freeze
end

Public Instance Methods

adapter() click to toggle source
# File lib/active_record/database_configurations/hash_config.rb, line 84
def adapter
  configuration_hash[:adapter]
end
checkout_timeout() click to toggle source
# File lib/active_record/database_configurations/hash_config.rb, line 69
def checkout_timeout
  (configuration_hash[:checkout_timeout] || 5).to_f
end
config() click to toggle source
# File lib/active_record/database_configurations/hash_config.rb, line 34
def config
  ActiveSupport::Deprecation.warn("DatabaseConfig#config will be removed in 7.0.0 in favor of DatabaseConfig#configuration_hash which returns a hash with symbol keys")
  configuration_hash.stringify_keys
end
database() click to toggle source
# File lib/active_record/database_configurations/hash_config.rb, line 57
def database
  configuration_hash[:database]
end
host() click to toggle source
# File lib/active_record/database_configurations/hash_config.rb, line 53
def host
  configuration_hash[:host]
end
idle_timeout() click to toggle source
# File lib/active_record/database_configurations/hash_config.rb, line 79
def idle_timeout
  timeout = configuration_hash.fetch(:idle_timeout, 300).to_f
  timeout if timeout > 0
end
migrations_paths() click to toggle source

The migrations paths for a database configuration. If the migrations_paths key is present in the config, migrations_paths will return its value.

# File lib/active_record/database_configurations/hash_config.rb, line 49
def migrations_paths
  configuration_hash[:migrations_paths]
end
pool() click to toggle source
# File lib/active_record/database_configurations/hash_config.rb, line 65
def pool
  (configuration_hash[:pool] || 5).to_i
end
reaping_frequency() click to toggle source

reaping_frequency is configurable mostly for historical reasons, but it could also be useful if someone wants a very low idle_timeout.

# File lib/active_record/database_configurations/hash_config.rb, line 75
def reaping_frequency
  configuration_hash.fetch(:reaping_frequency, 60)&.to_f
end
replica?() click to toggle source

Determines whether a database configuration is for a replica / readonly connection. If the replica key is present in the config, replica? will return true.

# File lib/active_record/database_configurations/hash_config.rb, line 42
def replica?
  configuration_hash[:replica]
end
schema_cache_path() click to toggle source

The path to the schema cache dump file for a database. If omitted, the filename will be read from ENV or a default will be derived.

# File lib/active_record/database_configurations/hash_config.rb, line 91
def schema_cache_path
  configuration_hash[:schema_cache_path]
end