如何用ruby,仅仅是用ruby来实现将一个表中的数据导入到另外一张表中,如mysql中的user表导入到oracle中的user表,如何实现,最好附上代码,谢谢各位大侠 了。
1.把mysql中user表序列化成Json格式到一个本地文件
[code="ruby"]
require 'rubygems'
require 'activerecord'
require 'yaml'
require 'logger'
#配置数据库连接信息
dbconfig = YAML.load(DATA.read)["user"]
ActiveRecord::Base.establish_connection(dbconfig)
#数据库log
ActiveRecord::Base.logger = Logger.new(File.open('database.log', 'a'))
#构造Lawyer模型
class User < ActiveRecord::Base;end
File.open("users","w") do |file|
file.write User.find(:all).to_json
end
#以下为数据库连接配置,请根据自己的账户和密码设置..
END
user:
adapter: mysql
encoding: utf8
reconnect: false
database: user
pool: 5
username: root
password:
host: localhost
[/code]
2.读取Json到Hash
[code="ruby"]
require'json'
json_string = ""
File.open("lawyers","r") do |file|
json_string << file.read
end
hash = JSON.parse json_string
#返回一个hash数组,每个元素是一条记录
[/code]
3.把Json导入oracle数据库
连接oracle数据库和上面一样,只不过把数据库名称改成adapter: oracle
然后在确保上面oracle数据连接按照上面配置好的情况下
[code="ruby"]
User.create hash
[/code]
ps:相信数据量不是很大,如果记录条数很多可以每次转移一定数目条数...