如何使用 Rails 3 从与 Rails 3 标准模式不匹配的现有数据库中的表中读取数据?
有人告诉我,Sequel gem 是一个不错的起点,但除此之外我没有太多东西。
规格:
- 它是一个 Oracle 数据库。我已经建立了连接,并确认迁移和回滚工作正常。
- 我已经为所需的表和相关列生成了脚手架。
- 我正在寻找一种方法来指定和映射相关的表和列。
- 这可以在没有续集的情况下完成吗?
如何使用 Rails 3 从与 Rails 3 标准模式不匹配的现有数据库中的表中读取数据?
有人告诉我,Sequel gem 是一个不错的起点,但除此之外我没有太多东西。
规格:
续集是一个很好的宝石。当我处理遗留数据库时,这是我的首选。
它是一个 Oracle 数据库。我已经建立了连接,并确认迁移和回滚工作正常。
如果您的数据库在企业中并且正在生产中,并且正在被其他应用程序使用,那么您需要非常小心地使用迁移。如果你也负责数据库开发,我建议只使用它们,即使那样我也会小心。
我已经为所需的表和相关列生成了脚手架。
脚手架是指形式吗?
我正在寻找一种方法来指定和映射相关的表和列。
Sequel 非常灵活,允许您使用原始 SQL、使用模型或在两者之间工作。如果您有一个名为“spoons”的表并已连接到它:
DB[:spoons]
将创建一个数据集来访问该表。从那里您可以附加 where 子句、选择、排序等。
另一种方法是使用模型,类似于 ActiveRecord:
class Spoon < Sequel:Model
end
它创建了一个表记录模型,其中包含所有字段的访问器。
Sequel 对主索引名称做出假设"id"
,例如 ActiveRecord,但如果需要,您可以更改它。
这两种方法都非常强大,并且可以很好地与使用字段及其类型的自动发现的数据库配合使用。
自述文件很好地概述了您需要了解的内容。
此外,Jeremy Evans 是开发人员,如果您向他提出技术问题,他会非常积极响应。
这可以在没有续集的情况下完成吗?
当然。ActiveRecord 将使用模型工作,但如果键或表的名称不符合其预定/预期的名称,您可能必须告诉它它们的名称。