ruby on rails - proyecto - Establecer la conexión predeterminada de la base de datos Rails
crear proyecto ruby on rails postgresql (3)
Mi aplicación Rails tiene su propia base de datos MySql (y requiere la gema mysql2) pero también necesita conectarse con una base de datos externa MongoDB para un modelo en particular (y por eso he incluido mongoid y bson_ext en el Gemfile). Ahora cuando intento generar una migración para un nuevo modelo, me dice que
$ rails g migration CreateLocations
error mongoid [not found]
Cuando generé el modelo de ubicación, incluía Mongoid :: Document, por lo que Rails obviamente piensa que está utilizando la base de datos externa como mi almacén de datos principal.
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
ACTUALIZACIÓN Modelo que utiliza 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
Agregue esto al bloque de aplicaciones en su config / application.rb:
config.generators do |g|
g.orm :active_record
end
(solución encontrada here )
Primero verifique que el bloque a continuación esté presente en el archivo config / application.rb en su aplicación de rieles
config.generators do |g|
g.orm :active_record
end
Si no agrega entonces, o si no puede ejecutar
rails g active_record:migration
Si no desea cambiar config / application.rb, puede usar esto mientras genera el modelo:
rails generate active_record:migration
Si cambia el archivo application.rb, para invocar un generador de mongoides, por ejemplo, para un modelo de ''contactos'', uno usaría:
rails g mongoid:model contacts