sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man konfigurerar MongoMapper och ActiveRecord i samma Ruby Rails-projekt

Inkludera din mongo_mapper pärla i din Gemfil. Sedan i modellerna som du långsamt vill börja migrera över till MongoMapper, inkluderar du bara detta i din modell:

include MongoMapper::Document

här är ett exempel på en Mongo-förlagsmodell

class Publisher
  include MongoMapper::Document

  key :_id, String
  key :mtd_uniques, Integer
  key :mtd_demo_uniques, Integer
  key :archive, Array
  key :ignore, Boolean
end

Min användarmodell (postgres):

class User < ActiveRecord::Base
  validates_presence_of :first_name, :last_name, :email, :type
  acts_as_authentic

  def self.inherited(child)
    child.instance_eval do
      def model_name
        User.model_name
      end
    end
    super
  end
end

Det fina med detta är att alla dina andra modeller fortfarande använder ActiveRecord så att du kan använda 2 olika databaser tills allt har migrerats över till Mongo. Detta är ett exempel från det jag använder. Stora dataaggregeringar med MongoMapper och användarmodell med postgres (app värd på Heroku)

För min installation dumpade jag config-grejer i min config.yml

development:
  adapter: MongoDB
  host: localhost
  database: my-dev-db

test:
  adapter: MongoDB
  host: localhost
  database: my-dev-db

staging:
  adapter: MongoDB
  host: remote-host (for me amazon ec2)
  database: my-staging-db

production:
  adapter: MongoDB
  host: remote-host (for me amazon ec2)
  database: my-production-db

och skapade en initialiserare som skiljer mellan de två DB:erna:

/initializers/database.rb

# load YAML and connect
database_yaml = YAML::load(File.read("#{Rails.root}/config/config.yml"))
puts "Initializing mongodb"
if database_yaml[Rails.env] && database_yaml[Rails.env]['adapter'] == 'MongoDB'
  mongo_database = database_yaml[Rails.env]
  MongoMapper.connection = Mongo::Connection.new(mongo_database['host'], 27017, :pool_size => 5, :timeout => 5)
  MongoMapper.database =  mongo_database['database']
end


  1. TypeError:sökvägen måste vara en sträng eller buffert MEAN-stack

  2. skiftlägesokänslig hitta i mongodb för användarnamn i php

  3. HDFS Tutorial – En komplett introduktion till HDFS för nybörjare

  4. heroku mongohq och mongoid Mongo::ConnectionFailure