Spec-Zone.ru › Ruby on Rails 6.1

class ActiveRecord::DatabaseConfigurations

Parent:
Объект

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

Атрибуты

configurations[R]

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

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

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

[](env = default_env)
Псевдоним для: default_hash
blank?()
Псевдоним для: empty?
configs_for(env_name: nil, spec_name: nil, name: nil, include_replicas: false) Показать исходный код
# File activerecord/lib/active_record/database_configurations.rb, line 40
def configs_for(env_name: nil, spec_name: nil, name: nil, include_replicas: false)
  if spec_name
    name = spec_name
    ActiveSupport::Deprecation.warn("The kwarg `spec_name` is deprecated in favor of `name`. `spec_name` will be removed in Rails 6.2")
  end

  env_name ||= default_env if name
  configs = env_with_configs(env_name)

  unless include_replicas
    configs = configs.select do |db_config|
      !db_config.replica?
    end
  end

  if name
    configs.find do |db_config|
      db_config.name == name
    end
  else
    configs
  end
end

Собирает конфигурации для указанной среды и, необязательно, имени спецификации. Для включения реплицированных конфигураций передайте include_replicas: true.

Если указано имя, возвращается единственный объект DatabaseConfig, в противном случае — массив объектов DatabaseConfig, соответствующих запрошенной среде и типу.

Параметры

  • env_name: Имя среды. По умолчанию nil — собирает конфигурации для всех сред.

  • name: Имя конфигурации БД (например, primary, animals и т. д.). По умолчанию nil. Если не указано env_name, возвращается конфигурация для стандартной среды и переданного name.

  • include_replicas: Определяет, следует ли включать реплики в возвращаемый список. В большинстве случаев мы итерируем только по соединениям для записи (например, миграции не нуждаются в выполнении для соединений для записи и чтения). По умолчанию false.

default_hash(env = default_env) Показать исходный код
# File activerecord/lib/active_record/database_configurations.rb, line 70
def default_hash(env = default_env)
  default = find_db_config(env)
  default.configuration_hash if default
end

Возвращает хеш конфигурации, соответствующий среде.

Если у приложения несколько баз данных, default_hash вернет первый хеш конфигурации для среды.

{ database: "my_db", adapter: "mysql2" }
Также алиас для: []
empty?() Показать исходный код
# File activerecord/lib/active_record/database_configurations.rb, line 114
def empty?
  configurations.empty?
end

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

Алиас для blank?

Также алиас для: blank?
find_db_config(env) Показать исходный код
# File activerecord/lib/active_record/database_configurations.rb, line 81
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 для среды.

to_h() Показать исходный код
# File activerecord/lib/active_record/database_configurations.rb, line 104
def to_h
  configurations.inject({}) do |memo, db_config|
    memo.merge(db_config.env_name => db_config.configuration_hash.stringify_keys)
  end
end

Возвращает объект DatabaseConfigurations в виде Hash.

© 2004–2020 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

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