Spec-Zone.ru › Ruby on Rails 7.1

класс ActiveRecord::DatabaseConfigurations::HashConfig

Родитель:
ActiveRecord::DatabaseConfigurations::DatabaseConfig

Конфигурация базы данных Active Record Hash

Объект HashConfig создаётся для каждой записи конфигурации базы данных, созданной из хэша.

Хэш конфигурации:

{ "development" => { "database" => "db_name" } }

Преобразуется в:

#<ActiveRecord::DatabaseConfigurations::HashConfig:0x00007fd1acbded10
  @env_name="development", @name="primary", @config={database: "db_name"}>

См. ActiveRecord::DatabaseConfigurations для получения дополнительной информации.

Атрибуты

configuration_hash[R]

Открытые методы класса

new(env_name, name, configuration_hash) Показать исходный код
# 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 - Хэш конфигурации. Это хэш, содержащий адаптер базы данных, имя и другую важную информацию для подключений к базе данных.

Вызов метода суперкласса

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

adapter() Показать исходный код
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 106
def adapter
  configuration_hash[:adapter]
end
checkout_timeout() Показать исходный код
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 91
def checkout_timeout
  (configuration_hash[:checkout_timeout] || 5).to_f
end
database() Показать исходный код
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 63
def database
  configuration_hash[:database]
end
default_schema_cache_path() Показать исходный код
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 117
def default_schema_cache_path
  "db/schema_cache.yml"
end
host() Показать исходный код
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 55
def host
  configuration_hash[:host]
end
idle_timeout() Показать исходный код
# 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
lazy_schema_cache_path() Показать исходный код
# 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
max_queue() Показать исходный код
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 87
def max_queue
  max_threads * 4
end
max_threads() Показать исходный код
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 79
def max_threads
  (configuration_hash[:max_threads] || pool).to_i
end
migrations_paths() Показать исходный код
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 51
def migrations_paths
  configuration_hash[:migrations_paths]
end

Пути миграций для конфигурации базы данных. Если ключ migrations_paths присутствует в конфигурации, migrations_paths вернёт его значение.

min_threads() Показать исходный код
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 75
def min_threads
  (configuration_hash[:min_threads] || 0).to_i
end
pool() Показать исходный код
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 71
def pool
  (configuration_hash[:pool] || 5).to_i
end
query_cache() Показать исходный код
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 83
def query_cache
  configuration_hash[:query_cache]
end
END_OF_DOCUMENT_MARKER
reaping_frequency() Показать исходный код
# 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.

replica?() Показать исходный код
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 44
def replica?
  configuration_hash[:replica]
end

Определяет, предназначена ли конфигурация базы данных для подключения реплики/только для чтения. Если ключ replica присутствует в конфигурации, replica? вернёт true.

schema_cache_path() Показать исходный код
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 113
def schema_cache_path
  configuration_hash[:schema_cache_path]
end

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

schema_dump(format = ActiveRecord.schema_format) Показать исходный код
# 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.

Spec-Zone.ru

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