L'app My Rails ha il proprio database MySql (e richiede mysql2 gem) ma ha anche bisogno di connettersi con un database MongoDB esterno per un particolare modello (e quindi ho incluso mongoid e bson_ext nel Gemfile). Ora in cui provo a generare una migrazione per un nuovo modello, mi dice cheImposta connessione database predefinita Rails
$ rails g migration CreateLocations
error mongoid [not found]
Quando ho generato il modello Location comprendeva Documento Mongoid ::, quindi Rails pensa, ovviamente, sta usando il database esterno come il mio primario archivio dati.
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 modello che utilizza 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
Una soluzione è commentare "mongoid" nel mio Gemfile, creare ed eseguire le migrazioni, quindi decommentare e fare il rebundle. Ovviamente non legit. – Chris
Si prega di inviare il codice modello pertinente per quello che utilizza MongoDB. –
@DeanBrundage aggiornato – Chris