Class: ActiveRecord::DatabaseConfigurations::HashConfig
- Inherits:
-
DatabaseConfig
- Object
- DatabaseConfig
- ActiveRecord::DatabaseConfigurations::HashConfig
- 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", @spec_name="primary", @config={database: "db_name"}>
Options
-
:env_name
- The Rails environment, i.e. “development”. -
:spec_name
- The specification 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.
Direct Known Subclasses
Instance Attribute Summary
Attributes inherited from DatabaseConfig
#env_name, #owner_name, #spec_name
Instance Method Summary collapse
- #adapter ⇒ Object
- #checkout_timeout ⇒ Object
- #config ⇒ Object
- #configuration_hash ⇒ Object
- #database ⇒ Object
- #host ⇒ Object
- #idle_timeout ⇒ Object
-
#initialize(env_name, spec_name, config) ⇒ HashConfig
constructor
A new instance of HashConfig.
-
#migrations_paths ⇒ Object
The migrations paths for a database configuration.
- #pool ⇒ Object
-
#reaping_frequency ⇒ Object
reaping_frequency
is configurable mostly for historical reasons, but it could also be useful if someone wants a very lowidle_timeout
. -
#replica? ⇒ Boolean
Determines whether a database configuration is for a replica / readonly connection.
Methods inherited from DatabaseConfig
#adapter_method, #for_current_env?
Constructor Details
#initialize(env_name, spec_name, config) ⇒ HashConfig
Returns a new instance of HashConfig.
28 29 30 31 |
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 28 def initialize(env_name, spec_name, config) super(env_name, spec_name) @config = config.symbolize_keys end |
Instance Method Details
#adapter ⇒ Object
83 84 85 |
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 83 def adapter configuration_hash[:adapter] end |
#checkout_timeout ⇒ Object
68 69 70 |
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 68 def checkout_timeout (configuration_hash[:checkout_timeout] || 5).to_f end |
#config ⇒ Object
33 34 35 36 |
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 33 def config ActiveSupport::Deprecation.warn("DatabaseConfig#config will be removed in 6.2.0 in favor of DatabaseConfigurations#configuration_hash which returns a hash with symbol keys") configuration_hash.stringify_keys end |
#configuration_hash ⇒ Object
38 39 40 |
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 38 def configuration_hash @config.freeze end |
#database ⇒ Object
60 61 62 |
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 60 def database configuration_hash[:database] end |
#host ⇒ Object
56 57 58 |
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 56 def host configuration_hash[:host] end |
#idle_timeout ⇒ Object
78 79 80 81 |
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 78 def idle_timeout timeout = configuration_hash.fetch(:idle_timeout, 300).to_f timeout if timeout > 0 end |
#migrations_paths ⇒ Object
The migrations paths for a database configuration. If the migrations_paths
key is present in the config, migrations_paths
will return its value.
52 53 54 |
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 52 def migrations_paths configuration_hash[:migrations_paths] end |
#pool ⇒ Object
64 65 66 |
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 64 def pool (configuration_hash[:pool] || 5).to_i end |
#reaping_frequency ⇒ Object
reaping_frequency
is configurable mostly for historical reasons, but it could also be useful if someone wants a very low idle_timeout
.
74 75 76 |
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 74 def reaping_frequency configuration_hash.fetch(:reaping_frequency, 60)&.to_f end |
#replica? ⇒ Boolean
Determines whether a database configuration is for a replica / readonly connection. If the replica
key is present in the config, replica?
will return true
.
45 46 47 |
# File 'activerecord/lib/active_record/database_configurations/hash_config.rb', line 45 def replica? configuration_hash[:replica] end |