如何从rails中的远程服务器数据库中提取数据?

时间:2013-04-18 05:00:48

标签: ruby-on-rails ruby dbi remote-server

我使用tiny_tds连接到远程数据库,该数据库仅用于MySQL和Sql服务器。他们是否可以访问任何供应商数据库?

1 个答案:

答案 0 :(得分:1)

您不了解数据库访问的工作原理。

我们使用驱动程序与数据库通信。数据库供应商具有用于连接的不同协议,因此驱动程序可以处理该协议。

在该层之上,我们有一个与驱动程序对话的API。这就像DBI,它知道如何与不同的司机交谈。我们仍然需要使用数据库的查询语言编写,但DBI给了我们一些优势。从一个数据库转换到另一个数据库是一件痛苦的事情,因为通常所有查询都会发生变化,并且“标准”之间会出现不一致。

在该层之上,我们有类似ActiveRecord或Sequel的东西,它们是ORM,并且主要是DBM不可知的。它们允许我们使用一致的语言来定义与数据库的连接,创建查询和处理交互。如果我们想与另一个数据库管理器通信,我们安装驱动程序,更改连接字符串,其余的应该可以工作。

这是一个巨大的时间节省和“非常好的事情”。您可以将SQLite用于概念验证,以及用于生产系统的PostgreSQL,MySQL或Oracle,而无需更改查询。只有DSN /连接字符串通常会更改。

阅读Sequel的“Connecting to a database”文档以了解ORM可以做什么,以及“Sequel: The Database Toolkit for Ruby”和“Cheat Sheet”以了解Sequel可以做什么。