Spec-Zone.ru › Ruby on Rails 7.0

class ActiveRecord::DatabaseConfigurations

Parent:
Object

ActiveRecord::DatabaseConfigurations возвращает массив объектов DatabaseConfig (либо HashConfig, либо UrlConfig), созданных из конфигурации базы данных приложения или строки URL.

Атрибуты

configurations[R]

Публичные методы класса

new(configurations = {}) Показать исходный код
# File activerecord/lib/active_record/database_configurations.rb, line 19
def initialize(configurations = {})
  @configurations = build_configs(configurations)
end

Публичные методы экземпляра

blank?()
Псевдоним для: empty?
configs_for(env_name: nil, name: nil, include_replicas: false, include_hidden: false) Показать исходный код
# 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.

empty?() Показать исходный код
# File activerecord/lib/active_record/database_configurations.rb, line 98
def empty?
  configurations.empty?
end

Проверяет, пустая ли конфигурация приложения.

Псевдоним для blank?

Также псевдоним для: blank?
find_db_config(env) Показать исходный код
# 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API