класс ActiveRecord::DatabaseConfigurations::HashConfig
Объект HashConfig создаётся для каждой записи конфигурации базы данных, созданной из хеша.
Хеш-конфигурация:
{ "development" => { "database" => "db_name" } }
Преобразуется в:
#<ActiveRecord::DatabaseConfigurations::HashConfig:0x00007fd1acbded10
@env_name="development", @name="primary", @config={database: "db_name"}> Параметры
-
:env_name- Среда Rails, например, “development”. -
:name- Имя конфигурации базы данных. В стандартной конфигурации базы данных двух уровней по умолчанию будет «primary». В конфигурации базы данных нескольких уровней (трёх уровней) это соответствует имени, используемому на втором уровне, например, «primary_readonly». -
:config- Хеш конфигурации. Это хеш, содержащий адаптер базы данных, имя и другую важную информацию для подключения к базе данных.
Атрибуты
Публичные методы класса
# 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
Публичные методы экземпляра
# 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
Пути миграций для конфигурации базы данных. Если ключ migrations_paths присутствует в конфигурации, migrations_paths вернёт его значение.
# 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 настраивается в основном по историческим причинам, но может быть полезным, если кому-то нужна очень низкая idle_timeout.
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 42 def replica? configuration_hash[:replica] end
Определяет, предназначена ли конфигурация базы данных для реплицирующего/только для чтения подключения. Если ключ replica присутствует в конфигурации, replica? вернёт true.
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 91 def schema_cache_path configuration_hash[:schema_cache_path] end
Путь к файлу кеша схемы базы данных. Если опущен, имя файла будет считано из среды или выведено по умолчанию.
© 2004–2020 David Heinemeier Hansson
Licensed under the MIT License.