класс ActiveRecord::DatabaseConfigurations::HashConfig
Конфигурация базы данных Active Record Hash
Объект HashConfig создаётся для каждой записи конфигурации базы данных, созданной из хэша.
Хэш конфигурации:
{ "development" => { "database" => "db_name" } }
Преобразуется в:
#<ActiveRecord::DatabaseConfigurations::HashConfig:0x00007fd1acbded10
@env_name="development", @name="primary", @config={database: "db_name"}> См. ActiveRecord::DatabaseConfigurations для получения дополнительной информации.
Атрибуты
Открытые методы класса
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 36 def initialize(env_name, name, configuration_hash) super(env_name, name) @configuration_hash = configuration_hash.symbolize_keys.freeze end
Инициализировать новый объект HashConfig
Параметры
-
:env_name- Среда Rails, например, “development”. -
:name- Имя конфигурации базы данных. В стандартной конфигурации базы данных в два уровня по умолчанию будет “primary”. В конфигурации базы данных в три уровня с несколькими базами данных это соответствует имени, используемому во втором уровне, например, “primary_readonly”. -
:config- Хэш конфигурации. Это хэш, содержащий адаптер базы данных, имя и другую важную информацию для подключений к базе данных.
Публичные методы экземпляра
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 106 def adapter configuration_hash[:adapter] end
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 91 def checkout_timeout (configuration_hash[:checkout_timeout] || 5).to_f end
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 63 def database configuration_hash[:database] end
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 117 def default_schema_cache_path "db/schema_cache.yml" end
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 55 def host configuration_hash[:host] end
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 101 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 121 def lazy_schema_cache_path schema_cache_path || default_schema_cache_path end
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 87 def max_queue max_threads * 4 end
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 79 def max_threads (configuration_hash[:max_threads] || pool).to_i end
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 51 def migrations_paths configuration_hash[:migrations_paths] end
Пути миграций для конфигурации базы данных. Если ключ migrations_paths присутствует в конфигурации, migrations_paths вернёт его значение.
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 75 def min_threads (configuration_hash[:min_threads] || 0).to_i end
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 71 def pool (configuration_hash[:pool] || 5).to_i end
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 83 def query_cache configuration_hash[:query_cache] end
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 97 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 44 def replica? configuration_hash[:replica] end
Определяет, предназначена ли конфигурация базы данных для подключения реплики/только для чтения. Если ключ replica присутствует в конфигурации, replica? вернёт true.
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 113 def schema_cache_path configuration_hash[:schema_cache_path] end
Путь к файлу дампа кеша схемы базы данных. Если он опущен, имя файла будет считано из переменной окружения или выведено по умолчанию.
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 137
def schema_dump(format = ActiveRecord.schema_format)
if configuration_hash.key?(:schema_dump)
if config = configuration_hash[:schema_dump]
config
end
elsif primary?
schema_file_type(format)
else
"#{name}_#{schema_file_type(format)}"
end
end Определяет, следует ли выгружать файлы схемы/структуры и имя файла, которое следует использовать.
Если configuration_hash[:schema_dump] установлено в false или nil, схема не будет выгружена.
Если настроен параметр конфигурации, он будет использован. В противном случае Rails сгенерирует имя файла из имени конфигурации базы данных.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.