DB_CONFIG = YAML.load(File.new("#{ROOT}/database.yml")) class FromDB < ActiveRecord::Base self.record_timestamps = false self.abstract_class = true establish_connection(DB_CONFIG['from']) end class ToDB < ActiveRecord::Base self.record_timestamps = false self.abstract_class = true establish_connection(DB_CONFIG['to'])
def self.get_instance(obj) self.find_by_id(obj.id) || self.new end
def self.save_from(obj) n = get_instance(obj) self.column_names.each do |c| m = "convert_#{c}" v = nil if obj.respond_to?(m) v = obj.send(m) else v = obj.send(c) if obj.respond_to?(c) end n.send("#{c}=", v) if !v.nil? end obj.after_save_callback(n) if n.save && obj.respond_to?(:after_save_callback) n end end
require File.expand_path("../../migrate_db.rb",__FILE__) class Fromventory < FromDB self.table_name = "ventories"
def convert_active self.state == 2 ? -1 : 1 end end
class Toventory < ToDB self.table_name = "ventories" end
Fromventory.all.each do |src| c = Toventory.save_from(src) end