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 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏