【问题标题】:Ruby on Rails 3, Sequel, Tapping into an existing databaseRuby on Rails 3,续集,利用现有数据库
【发布时间】:2011-03-06 04:47:12
【问题描述】:

如何使用 Rails 3 从与 Rails 3 标准架构不匹配的现有数据库中的表中读取数据?

有人告诉我,Sequel gem 是一个不错的起点,但除此之外我没有太多。

具体说明:

  • 这是一个 Oracle 数据库。我已经建立了连接,并确认迁移和回滚工作正常。
  • 我已经为所需的表和相关列生成了脚手架。
  • 我正在寻找一种方法来指定和映射相关的表和列。
  • 没有 Sequel 可以做到吗?

【问题讨论】:

    标签: ruby oracle ruby-on-rails-3 sequel columnmappings


    【解决方案1】:

    续集是这方面的绝佳选择。这是我处理遗留数据库时的首选。

    它是一个 Oracle 数据库。我已经建立了连接,并确认迁移和回滚工作正常。

    如果您的数据库在企业中并且正在生产中,并且正在被其他应用程序使用,那么您在使用迁移时需要非常小心。如果你也负责数据库开发,我建议只使用它们,即使那样我也会小心。

    我已经为所需的表和相关列生成了脚手架。

    脚手架是指表单吗?

    我正在寻找一种方法来指定和映射相关的表和列。

    Sequel 非常灵活,可让您使用原始 SQL、使用模型或在两者之间工作。如果您有一个名为“spoons”的表并已连接到它:

    DB[:spoons]
    

    将创建一个数据集来访问该表。从那里您可以附加 where 子句、选择、排序等。

    另一种方法是使用模型,类似于 ActiveRecord:

    class Spoon < Sequel:Model
    end
    

    它创建了一个表记录模型,其中包含所有字段的访问器。

    Sequel 对主索引名称 "id" 进行了假设,例如 ActiveRecord,但您可以根据需要更改它。

    这两种方法都非常强大,并且可以很好地与使用字段及其类型的自动发现的数据库配合使用。

    The README 很好地概述了您需要了解的内容。

    此外,Jeremy Evans 是开发人员,如果您向他提出技术问题,他会非常积极地回答。

    没有Sequel也能做到吗?

    当然。 ActiveRecord 可以使用模型,但如果键或表的名称不符合其预定/预期的名称,您可能必须告诉它它们的名称。

    【讨论】:

      猜你喜欢
      • 2013-04-22
      • 1970-01-01
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多