Ustaw domyślne szyny połączenia z bazą danych

Moja aplikacja rails ma własną bazę danych MySql (i wymaga gem mysql2), ale także musi połączyć się z zewnętrzną bazą danych MongoDB dla jednego konkretnego modelu (i dlatego włączyłem mongoid i bson_ext w pliku Gemfile). Teraz, gdy próbuję wygenerować migrację dla nowego modelu, mówi mi, że

$ rails g migration CreateLocations
       error  mongoid [not found]

Kiedy wygenerowałem Model lokalizacji, zawierał on Mongoid::Document, więc Rails najwyraźniej myśli, że używa zewnętrznej bazy danych jako mojego głównego datastore.

Database.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 Model wykorzystujÄ…cy 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
Author: Chris, 2012-06-26

3 answers

Dodaj to do bloku aplikacji w konfiguracji / aplikacji.rb:

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

(rozwiÄ…zanie znalezione tutaj )

 26
Author: Hugeen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-14 04:44:07

Jeśli nie chcesz zmieniać konfiguracji / aplikacji.rb można tego użyć podczas generowania modelu:

rails generate active_record:migration

Jeśli zmienisz aplikację.plik rb, aby wywołać generator mongoid, powiedzmy dla modelu 'kontakty', można użyć:

rails g mongoid:model contacts

(rozwiÄ…zanie link )

 19
Author: Nanda,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:41

Najpierw sprawdź, czy poniższy blok jest obecny w config / application.plik rb w aplikacji rails

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

If not add then, or else you can run

rails g active_record:migration
 5
Author: Avijit Majhi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-08 17:51:37