阅读背景:

新旧系统数据迁移脚本

来源:互联网 
require 'active_record' require 'ruby-progressbar' require 'yaml' ROOT = File.expand_path("..",__FILE__) 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 'active_record' require 'ruby-progressbar'


你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: