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. 
Methods
- adapter
 - checkout_timeout
 - config
 - database
 - host
 - idle_timeout
 - migrations_paths
 - new
 - pool
 - reaping_frequency
 - replica?
 - schema_cache_path
 
Attributes
| [R] | configuration_hash | 
Class Public methods
new(env_name, name, configuration_hash)
📝 Source code
# 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
              
                🔎 See on GitHub
              
            Instance Public methods
adapter()
📝 Source code
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 84
      def adapter
        configuration_hash[:adapter]
      end
              
                🔎 See on GitHub
              
            checkout_timeout()
📝 Source code
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 69
      def checkout_timeout
        (configuration_hash[:checkout_timeout] || 5).to_f
      end
              
                🔎 See on GitHub
              
            config()
📝 Source code
# 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
              
                🔎 See on GitHub
              
            database()
📝 Source code
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 57
      def database
        configuration_hash[:database]
      end
              
                🔎 See on GitHub
              
            host()
📝 Source code
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 53
      def host
        configuration_hash[:host]
      end
              
                🔎 See on GitHub
              
            idle_timeout()
📝 Source code
# 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
              
                🔎 See on GitHub
              
            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.
📝 Source code
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 49
      def migrations_paths
        configuration_hash[:migrations_paths]
      end
              
                🔎 See on GitHub
              
            pool()
📝 Source code
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 65
      def pool
        (configuration_hash[:pool] || 5).to_i
      end
              
                🔎 See on GitHub
              
            reaping_frequency()
reaping_frequency is configurable mostly for historical reasons, but it could also be useful if someone wants a very low idle_timeout.
📝 Source code
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 75
      def reaping_frequency
        configuration_hash.fetch(:reaping_frequency, 60)&.to_f
      end
              
                🔎 See on GitHub
              
            replica?()
Determines whether a database configuration is for a replica / readonly connection. If the replica key is present in the config, replica? will return true.
📝 Source code
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 42
      def replica?
        configuration_hash[:replica]
      end
              
                🔎 See on GitHub
              
            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.
📝 Source code
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 91
      def schema_cache_path
        configuration_hash[:schema_cache_path]
      end
              
                🔎 See on GitHub