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
-
: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.
Attributes
Public Class Methods
# 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
Public Instance Methods
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 84 def adapter configuration_hash[:adapter] end
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 69 def checkout_timeout (configuration_hash[:checkout_timeout] || 5).to_f end
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 34 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
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 57 def database configuration_hash[:database] end
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 53 def host configuration_hash[:host] end
# 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
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 49 def migrations_paths configuration_hash[:migrations_paths] end
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 65 def pool (configuration_hash[:pool] || 5).to_i end
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 75 def reaping_frequency configuration_hash.fetch(:reaping_frequency, 60)&.to_f end
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 42 def replica? configuration_hash[:replica] end
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 91 def schema_cache_path configuration_hash[:schema_cache_path] end
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.
© 2004–2020 David Heinemeier Hansson
Licensed under the MIT License.