Class: MakumbaImport::KeyHandler
- Inherits:
-
Object
- Object
- MakumbaImport::KeyHandler
- Defined in:
- lib/makumba_import/key_handler.rb
Class Method Summary collapse
- .get_dbsv ⇒ Object
- .init_redis(redis) ⇒ Object
- .next_primary_key(model) ⇒ Object
- .set_dbsv(dbsv) ⇒ Object
- .update_redis_keys ⇒ Object
Class Method Details
.get_dbsv ⇒ Object
11 12 13 |
# File 'lib/makumba_import/key_handler.rb', line 11 def self.get_dbsv @dbsv end |
.init_redis(redis) ⇒ Object
15 16 17 |
# File 'lib/makumba_import/key_handler.rb', line 15 def self.init_redis(redis) @redis = redis end |
.next_primary_key(model) ⇒ Object
19 20 21 |
# File 'lib/makumba_import/key_handler.rb', line 19 def self.next_primary_key(model) @redis.incr "maxprimary_#{model.table_name}_#{@dbsv}" end |
.set_dbsv(dbsv) ⇒ Object
7 8 9 |
# File 'lib/makumba_import/key_handler.rb', line 7 def self.set_dbsv(dbsv) @dbsv = dbsv end |
.update_redis_keys ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/makumba_import/key_handler.rb', line 23 def self.update_redis_keys Dir[Rails.root.to_s + '/app/models/**/*.rb'].each do |file| begin require file rescue end end models = ActiveRecord::Base.subclasses.select{|m| m.descends_from_active_record?}.collect { |type| type.name }.sort models.each do |model| begin object = Object.const_get(model) primary_key = object.primary_key current_max = object.unscoped.maximum(primary_key, :conditions => ["#{primary_key} > ? and #{primary_key} < ?", @dbsv << 24, (@dbsv + 1) << 24]) || ((@dbsv << 24) + 1) redis_key = "maxprimary_#{model.table_name}_#{@dbsv}" @redis.set redis_key, current_max puts "updated #{model} - #{model.table_name}" rescue => e puts "#{model} - #{e}" end end end |