weixin_42314472 2009-07-16 13:45
浏览 176
已采纳

如何用ruby将一个表中的数据导入到另外一个表

如何用ruby,仅仅是用ruby来实现将一个表中的数据导入到另外一张表中,如mysql中的user表导入到oracle中的user表,如何实现,最好附上代码,谢谢各位大侠 了。

  • 写回答

1条回答 默认 最新

  • Hooopo 2009-07-16 15:00
    关注

    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:相信数据量不是很大,如果记录条数很多可以每次转移一定数目条数...

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器