Установить соединение по умолчанию с базой данных Rails

В моем приложении rails есть собственная база данных MySql (и требуется камень mysql2), но также необходимо подключиться к внешней базе данных MongoDB для одной конкретной модели (и поэтому я включил mongoid и bson_ext в Gemfile). Теперь, когда я пытаюсь создать миграцию для новой модели, она сообщает мне, что

$ rails g migration CreateLocations
       error  mongoid [not found]

Когда я создал модель Location, она включала Mongoid:: Document, поэтому Rails, очевидно, думает, что использует внешнюю базу данных в качестве моего основного хранилища данных.

databse.yml:

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: associalize_development
  pool: 5
  username: root
  password:
  socket: /tmp/mysql.sock

mongoid.yml:

development:
  host: pearl.mongohq.com
  port: 27019
  username: asfasdf
  password: sadfasdf
  database: app4574678

test:
  host: pearl.mongohq.com
  port: 27019
  username: asdfadhasdfa
  password: hadsadfas
  database: app4574678

production:
  host: pearl.mongohq.com
  port: 27019
  username: asdfdfsasda
  password: afdasdfdasdf
  database: app4574678

UPDATE  Модель, использующая Mongo

class ExternalMongoModel
  include Mongoid::Document

  field :title
  field :long_title
  field :deal_type
  field :merchandise_type
  field :market_id
  field :market_name
  field :market_location, type: Array
  field :featureType
  field :country_code
  field :subtitle
  field :offer_ends_at
  field :price
  field :value
  field :merchant_type
  field :content
  field :merchant

  index(
    [[:division_latlon, Mongo::GEO2D]], background: true
  )

end

Ответы

Ответ 1

Добавьте это в блок приложения в config/application.rb:

config.generators do |g|
  g.orm :active_record
end

(найденное решение здесь)

Ответ 2

Если вы не хотите изменять config/application.rb, вы можете использовать это при создании модели:

rails generate active_record:migration

Если вы изменили файл application.rb, чтобы вызвать генератор mongoid, скажем, для "контактов" модели, можно использовать:

rails g mongoid:model contacts

(ссылка на решение)

Ответ 3

Сначала проверьте, что нижний блок присутствует в файле config/application.rb в вашем приложении rails

config.generators do |g|
  g.orm :active_record
end

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

rails g active_record:migration