Я использую Rails 6, и я хотел бы использовать «нативную» поддержку нескольких баз данных для переключения БД на основе субдомена запроса. Это похоже на этот вопрос , но вместо использования драгоценного камня я хотел бы настроить database.yml
и затем использовать connected_to
в моем контроллере.
A around_action
в моем контроллере делает фактически переключаются базы данных, но я получаю ошибку periodi c, которая выглядит следующим образом:
ActiveRecord::ConnectionNotEstablished (No connection pool with 'primary' found.):
Мое окружающее действие выглядит так:
def select_db
if !Rails.env.production?
yield
else
if demo?
ActiveRecord::Base.connected_to(database: {writing: :demo_secondary}) do
yield
end
else
ActiveRecord::Base.connected_to(database: {writing: :primary}) do
yield
end
end
end
end
Эта ошибка периодически, указывая вероятность того, что приведенный выше код каким-то образом чрезмерно использует пул соединений. Поможет ли это явным образом очистить пул в конце round_action?