Class: ActiveRecord::DatabaseConfigurations::HashConfig
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Subclasses:
|
|
Inherits: |
ActiveRecord::DatabaseConfigurations::DatabaseConfig
|
Defined in: | activerecord/lib/active_record/database_configurations/hash_config.rb |
Overview
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
-
:env_name
- The Rails environment, i.e. “development”. -
:name
- The db config name. In a standard two-tier database configuration this will default to “primary”. In a multiple database three-tier database configuration this corresponds to the name used in the second tier, for example “primary_readonly”. -
:config
- The config hash. This is the hash that contains the database adapter, name, and other important information for database connections.
Class Method Summary
Instance Attribute Summary
- #configuration_hash readonly
-
#replica? ⇒ Boolean
readonly
Determines whether a database configuration is for a replica / readonly connection.
Instance Method Summary
- #adapter
- #checkout_timeout
- #config
- #database
- #host
- #idle_timeout
-
#migrations_paths
The migrations paths for a database configuration.
- #pool
-
#reaping_frequency
#reaping_frequency is configurable mostly for historical reasons, but it could also be useful if someone wants a very low #idle_timeout.
-
#schema_cache_path
The path to the schema cache dump file for a database.
Constructor Details
.new(env_name, name, configuration_hash) ⇒ HashConfig
# File 'activerecord/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
Instance Attribute Details
#configuration_hash (readonly)
[ GitHub ]# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 28
attr_reader :configuration_hash
#replica? ⇒ Boolean
(readonly)
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 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 42
def replica? configuration_hash[:replica] end
Instance Method Details
#adapter
[ GitHub ]# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 84
def adapter configuration_hash[:adapter] end
#checkout_timeout
[ GitHub ]# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 69
def checkout_timeout (configuration_hash[:checkout_timeout] || 5).to_f end
#config
[ GitHub ]# File 'activerecord/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
[ GitHub ]# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 57
def database configuration_hash[:database] end
#host
[ GitHub ]# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 53
def host configuration_hash[:host] end
#idle_timeout
[ GitHub ]# File 'activerecord/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
The migrations paths for a database configuration. If the migrations_paths
key is present in the config, migrations_paths
will return its value.
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 49
def migrations_paths configuration_hash[:migrations_paths] end
#pool
[ GitHub ]# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 65
def pool (configuration_hash[:pool] || 5).to_i end
#reaping_frequency
reaping_frequency
is configurable mostly for historical reasons, but it could also be useful if someone wants a very low #idle_timeout.
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 75
def reaping_frequency configuration_hash.fetch(:reaping_frequency, 60)&.to_f end
#schema_cache_path
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 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 91
def schema_cache_path configuration_hash[:schema_cache_path] end