Указание запроса c Переключение соединения с БД в Rails 6 - PullRequest
0 голосов
/ 05 февраля 2020

Я использую 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?

...