MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

एक ही रूबी रेल परियोजना में MongoMapper और ActiveRecord को कैसे कॉन्फ़िगर करें?

Gemfile में अपना mongo_mapper रत्न शामिल करें। फिर जिन मॉडलों में आप धीरे-धीरे MongoMapper पर माइग्रेट करना शुरू करना चाहते हैं, आप बस इसे अपने मॉडल में शामिल करें:

include MongoMapper::Document

यहां एक मोंगो प्रकाशक मॉडल का उदाहरण दिया गया है

class Publisher
  include MongoMapper::Document

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

मेरा उपयोगकर्ता मॉडल (पोस्टग्रेज):

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

इसके बारे में अच्छी बात यह है कि आपके सभी अन्य मॉडल अभी भी ActiveRecord का उपयोग करते हैं ताकि आप 2 अलग-अलग डेटाबेस का उपयोग तब तक कर सकें जब तक कि सब कुछ Mongo पर माइग्रेट न हो जाए। मैं जो उपयोग कर रहा हूं उससे यह एक उदाहरण है। MongoMapper का उपयोग करके बड़े डेटा एकत्रीकरण, और पोस्टग्रेज़ का उपयोग करके उपयोगकर्ता मॉडल (हेरोकू पर होस्ट किया गया ऐप)

अपने सेटअप के लिए मैंने अपने 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

और एक इनिशियलाइज़र बनाया जो 2 DBs के बीच अंतर करता है:

/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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. कुल फ़ंक्शन में स्किप काउंट 0

  2. मोंगो स्कीमा (एम्बेडिंग बनाम संदर्भ)

  3. उपयोगी इकाइयों के लिए MongoDB भू दूरी/त्रिज्या

  4. Google कंप्यूट इंजन इंस्टेंस को आगे कैसे पोर्ट करें?

  5. mongoDB कई क्षेत्रों में शामिल हों