【问题标题】:Updating a new SQL table with an old SQL table in a separate database使用单独数据库中的旧 SQL 表更新新 SQL 表
【发布时间】:2014-03-15 15:30:34
【问题描述】:

我在 Ruby 和 Active Record 方面的经验有限,所以这对我来说有点困难。我需要使用旧数据库的旧表中仍包含的信息更新新数据库中的新表。我无法同时连接到两个数据库。

我的想法是编写一个脚本来从旧数据库中获取信息并将其转储到文本文件 (text1)。然后手动切换数据库并在新数据库(text2)上做同样的事情。然后我将比较两个文本文件以在新文本文件 (text3) 中输出差异。最后,我会以某种方式将其上传到新数据库。至少这是我的伪代码。

有人对如何做到这一点有任何建议或示例脚本吗?如何最终将最终的文本文件 (text3) 转换为可以用于更新新数据库表的数组或数据类型?

我知道这是一个相当笼统的问题,但我非常感谢您的帮助。例子很好,信息很好,资源很好,只要能帮助我解决这个问题。

【问题讨论】:

    标签: mysql sql ruby database activerecord


    【解决方案1】:

    Rails 提供了连接到多个数据库的能力,因此我认为在您的情况下,使用 ActiveRecord 传递数据比通过文本文件进行一些操作要好。您需要做的就是创建设置文件并创建适当的模型。更多详情请点击此处Connecting Rails 3.1 with Multiple Databases

    【讨论】:

    • 有趣。我会尝试,但以防万一,假设由于某种原因我真的无法同时连接到两个数据库......关于如何更新新表的任何想法?
    • 当然,您可以创建一些文本或 csv 文件,然后使用 Rails 或数据库将它们合并,但它会比使用提供的方法更复杂。所以我建议找出为什么你不能在使用 Rails 的同时连接到数据库的原因
    • 好吧,问题在于它不是我的代码。我被带入项目较晚,并被告知他们不能同时连接到两个数据库。它是带有 Active Record 的标准 Ruby,但不是 Rails。我能够为每个数据集创建文本文件,但无法正确比较它们。一旦将它们进行比较并将差异放入新的文本文件中,我不确定如何将该文本转换为我可以使用的数组或数据类型以上传到新数据库中。你对此有什么想法吗?
    • 好的,实际上它是 ActiveRecord 的功能 - apidock.com/rails/ActiveRecord/Base/establish_connection/class 所以它既可以使用 rails 也可以不使用。但是如果您不想使用这种方法,那么我建议使用 YAML 格式的数据而不是文本格式。更多关于 YAML 的信息是strugglingwithruby.blogspot.com/2008/10/yaml.html
    • 谢谢,我相信我能从这里得到它。
    猜你喜欢
    • 2017-03-07
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    相关资源
    最近更新 更多