класс ActiveRecord::DatabaseConfigurations
ActiveRecord::DatabaseConfigurations возвращает массив объектов DatabaseConfig (либо HashConfig, либо UrlConfig), которые созданы из конфигурации базы данных приложения в формате хэша или строки URL.
Атрибуты
Публичные методы класса
# File activerecord/lib/active_record/database_configurations.rb, line 17
def initialize(configurations = {})
@configurations = build_configs(configurations)
end Публичные методы экземпляра
# File activerecord/lib/active_record/database_configurations.rb, line 38
def configs_for(env_name: nil, spec_name: nil, include_replicas: false)
configs = env_with_configs(env_name)
unless include_replicas
configs = configs.select do |db_config|
!db_config.replica?
end
end
if spec_name
configs.find do |db_config|
db_config.spec_name == spec_name
end
else
configs
end
end Собирает конфигурации для указанной среды и, необязательно, для указанного имени спецификации. Чтобы включить реплицированные конфигурации, используйте include_replicas: true.
Если имя спецификации указано, будет возвращён один объект DatabaseConfig, в противном случае — массив объектов DatabaseConfig, соответствующих запрошенной среде и типу.
Параметры
-
env_name:Имя среды. По умолчаниюnil, что соберет конфигурации для всех сред. -
spec_name:Имя спецификации (например, primary, animals и т.д.). По умолчаниюnil. -
include_replicas:Определяет, следует ли включать реплики в возвращаемый список. Большинство случаев предполагают итерацию только по конфигурации записи (т.е. миграции не нуждаются в выполнении для подключения записи и чтения). По умолчаниюfalse.
# File activerecord/lib/active_record/database_configurations.rb, line 62 def default_hash(env = ActiveRecord::ConnectionHandling::DEFAULT_ENV.call.to_s) default = find_db_config(env) default.config if default end
Возвращает хеш конфигурации, соответствующий заданной среде.
Если приложение имеет несколько баз данных, default_hash вернёт первый хеш конфигурации для заданной среды.
{ database: "my_db", adapter: "mysql2" }
# File activerecord/lib/active_record/database_configurations.rb, line 96
def each
throw_getter_deprecation(:each)
configurations.each { |config|
yield [config.env_name, config.config]
}
end # File activerecord/lib/active_record/database_configurations.rb, line 91 def empty? configurations.empty? end
Проверяет, пуста ли конфигурация баз данных приложения.
Псевдоним для blank?
# File activerecord/lib/active_record/database_configurations.rb, line 72
def find_db_config(env)
configurations.find do |db_config|
db_config.env_name == env.to_s ||
(db_config.for_current_env? && db_config.spec_name == env.to_s)
end
end Возвращает единственный объект DatabaseConfig, соответствующий заданной среде.
Если приложение имеет несколько баз данных, find_db_config вернёт первый DatabaseConfig для указанной среды.
# File activerecord/lib/active_record/database_configurations.rb, line 103 def first throw_getter_deprecation(:first) config = configurations.first [config.env_name, config.config] end
# File activerecord/lib/active_record/database_configurations.rb, line 80
def to_h
configs = configurations.reverse.inject({}) do |memo, db_config|
memo.merge(db_config.to_legacy_hash)
end
Hash[configs.to_a.reverse]
end Возвращает объект DatabaseConfigurations в виде хэша.
© 2004–2019 David Heinemeier Hansson
Licensed under the MIT License.