Подтвердить что ты не робот

Как программно получить текущую базу данных, в которую Mongoid пишет?

Я говорю о нескольких базах данных, используя Mongoid.override_database ("database_name"), используя Mongoid с рельсами. Как найти текущую базу данных программно?

Mongoid документы по сессиям: http://mongoid.org/en/moped/docs/driver.html определяют методы для переопределения базы данных, но не определяют способ использования текущей базы данных.

4b9b3361

Ответ 1

Получил!

Mongoid.default_session.options[:database]

Ответ 2

Новый способ получить это

Mongoid::Config.clients["default"]["database"]

Вы также можете просто взглянуть на

Mongoid::Config.clients

чтобы узнать, что еще доступно.

Ответ 3

Если вам нужна переопределенная база данных, вам действительно нужно использовать

Mongoid::Threaded.database_override

Ответ 4

Запуск Mongoid.default_session.options [: database] выдает ошибку, что default_session недействителен. Теперь это default_client. Это работает чудесно.

Запустите его без [: database], чтобы получить все опции и увидеть полную конфигурацию вашей базы данных.

Mongoid :: Config.clients ["default"] ["database"] предполагает, что вы НЕ используете версию uri mongoid.yml. Вы получите ноль во всех случаях. Используйте Mongoid :: Config.clients ["default"], чтобы получить полную конфигурацию текущей базы данных, или Mongoid :: Config.clients ["default"] ['uri'], чтобы получить только полный URI.

Выберите имя базы данных из URI после последнего номера порта /. Может быть несколько, если используется конфигурация