Ruby on Rails 3,续集,利用现有数据库

时间:2011-03-06 04:47:12

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

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

我被告知Sequel宝石是一个很好的起点,但除此之外我没有太多。

具体细节:

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

1 个答案:

答案 0 :(得分:0)

续集是一个很好的宝石。当我处理遗留数据库时,这是我的第一选择。

  

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

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

  

我为所需的表和相关列生成了支架。

通过支架,你的意思是形式吗?

  

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

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

DB[:spoons]

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

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

class Spoon < Sequel:Model
end

使用所有字段的访问器创建表记录的模型。

Sequel假设主要索引名称"id",如ActiveRecord,但如果需要,您可以更改它。

这两种方法都非常强大,适用于使用字段及其类型的自动发现的数据库。

The README非常了解您需要了解的内容。

此外,Jeremy Evans是开发人员,如果你向他提出技术问题,他们会非常敏感。

  

这可以在没有续集的情况下完成吗?

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