Spec-Zone.ru › Ruby on Rails 6.1

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

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

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

Хеш-конфигурация:

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

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

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

Параметры

  • :env_name - Среда Rails, например, “development”.

  • :name - Имя конфигурации базы данных. В стандартной конфигурации базы данных двух уровней по умолчанию будет «primary». В конфигурации базы данных нескольких уровней (трёх уровней) это соответствует имени, используемому на втором уровне, например, «primary_readonly».

  • :config - Хеш конфигурации. Это хеш, содержащий адаптер базы данных, имя и другую важную информацию для подключения к базе данных.

Атрибуты

configuration_hash[R]

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

new(env_name, name, configuration_hash) Показать исходный код
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 29
def initialize(env_name, name, configuration_hash)
  super(env_name, name)
  @configuration_hash = configuration_hash.symbolize_keys.freeze
end
Вызывает метод суперкласса

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

adapter() Показать исходный код
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 84
def adapter
  configuration_hash[:adapter]
end
checkout_timeout() Показать исходный код
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 69
def checkout_timeout
  (configuration_hash[:checkout_timeout] || 5).to_f
end
config() Показать исходный код
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 34
def config
  ActiveSupport::Deprecation.warn("DatabaseConfig#config will be removed in 6.2.0 in favor of DatabaseConfigurations#configuration_hash which returns a hash with symbol keys")
  configuration_hash.stringify_keys
end
database() Показать исходный код
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 57
def database
  configuration_hash[:database]
end
host() Показать исходный код
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 53
def host
  configuration_hash[:host]
end
idle_timeout() Показать исходный код
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 79
def idle_timeout
  timeout = configuration_hash.fetch(:idle_timeout, 300).to_f
  timeout if timeout > 0
end
migrations_paths() Показать исходный код
# File activerecord/lib/active_record/database_configurations/hash_config.rb, line 49
def migrations_paths
  configuration_hash[:migrations_paths]
end

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

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

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

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

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

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

Spec-Zone.ru

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