Коммутатор Rails подключается к базе данных на лету - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть база данных dev в моем приложении на Rails 5, но в нашей сети мы также храним заполненную базу данных для тестирования.Иногда мне приходится все время переключаться между этими базами данных, и я бы сэкономил много времени, если бы мог сделать это немедленно во время работы Rails.

Я попытался удалить все активные подключения, а затем установить исправленияконфигурация, но каким-то образом она продолжает подключаться к моей исходной базе данных.

Вот что я попробовал:

Product.count
  => 0 # is dev db

ActiveRecord::Base.connection_handler.remove_connection('development')
ActiveRecord::Base.connection_handler.remove_connection('primary')
ActiveRecord::Base.configurations['development'] = test_config_params

Product.count

=> 0 # Is still dev db

Где Rails кеширует эту старую информацию о соединении и как я могу удалить / заменить ее?

1 Ответ

0 голосов
/ 20 сентября 2018

Вы можете изменить соединения с базой данных, используя ActiveRecord::Base.establish_connection(config).Если установлен ActiveRecord::Base.configurations (Rails автоматически загружает в него содержимое config / database.yml), в качестве аргумента может быть задан символ, представляющий ключ в хеше конфигурации, например :development или :test

Проверьте полную документацию здесь

...