class ActiveRecord::DatabaseConfigurations
ActiveRecord::DatabaseConfigurations возвращает массив объектов DatabaseConfig (либо HashConfig, либо UrlConfig), созданных из конфигурации базы данных приложения или строки URL.
Атрибуты
Публичные методы класса
# File activerecord/lib/active_record/database_configurations.rb, line 19
def initialize(configurations = {})
@configurations = build_configs(configurations)
end Публичные методы экземпляра
# File activerecord/lib/active_record/database_configurations.rb, line 45
def configs_for(env_name: nil, name: nil, include_replicas: false, include_hidden: false)
if include_replicas
include_hidden = include_replicas
ActiveSupport::Deprecation.warn("The kwarg `include_replicas` is deprecated in favor of `include_hidden`. When `include_hidden` is passed, configurations with `replica: true` or `database_tasks: false` will be returned. `include_replicas` will be removed in Rails 7.1.")
end
env_name ||= default_env if name
configs = env_with_configs(env_name)
unless include_hidden
configs = configs.select do |db_config|
db_config.database_tasks?
end
end
if name
configs.find do |db_config|
db_config.name == name
end
else
configs
end
end Сбор конфигураций для указанной среды и, необязательно, имени спецификации. Для включения конфигураций реплик передайте include_hidden: true.
Если имя указано, будет возвращен один объект DatabaseConfig; в противном случае — массив объектов DatabaseConfig, соответствующий заданной среде и типу.
Параметры
-
env_name:Имя среды. По умолчаниюnil, что собирает конфигурации для всех сред. -
name:Имя конфигурации БД (например, primary, animals и т.д.). По умолчаниюnil. Еслиenv_nameне указано, возвращаются конфигурации для среды по умолчанию и переданногоname. -
include_replicas:Устарело. Определяет, нужно ли включать реплики в возвращаемый список. В большинстве случаев мы итерируем только по подключению записи (например, миграции не нужно запускать для подключения записи и чтения). По умолчаниюfalse. -
include_hidden:Определяет, нужно ли включать реплики и конфигурации, скрытые полем +database_tasks: false+, в возвращаемый список. В большинстве случаев мы итерируем только по первичным подключениям (например, миграции не нужно запускать для подключения записи и чтения). По умолчаниюfalse.
# File activerecord/lib/active_record/database_configurations.rb, line 98 def empty? configurations.empty? end
Проверяет, пустая ли конфигурация приложения.
Псевдоним для blank?
# File activerecord/lib/active_record/database_configurations.rb, line 73
def find_db_config(env)
configurations
.sort_by.with_index { |db_config, i| db_config.for_current_env? ? [0, i] : [1, i] }
.find do |db_config|
db_config.env_name == env.to_s ||
(db_config.for_current_env? && db_config.name == env.to_s)
end
end Возвращает один объект DatabaseConfig, соответствующий запрошенной среде.
Если у приложения несколько баз данных, find_db_config вернет первый объект DatabaseConfig для среды.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.