2013-04-18 120 views
4

我正在使用tiny_tds连接到远程数据库,该数据库仅用于MySQL和Sql服务器。他们是否有可以访问任何供应商数据库的其他宝石?如何从rails中的远程服务器数据库中获取数据?

+1

你试图连接到什么数据库?有很多实现这个目标的策略,所以如果你更具体地解释了为什么你要连接到一个独立的数据库,我们可以给你一个更好的答案。 – Trip 2013-04-18 05:07:00

+0

目前正在使用sql server。但我正在寻找可以访问任何供应商数据库的解决方案。 – Ashwini 2013-04-18 05:26:35

+0

正在将数据从一个数据库迁移到其他数据库。 – Ashwini 2013-04-18 05:42:01

回答

1

你不理解数据库访问的工作方式。

我们使用驱动程序与数据库交谈。数据库供应商有不同的协议用于连接,因此驱动程序会处理该协议。

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

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

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

通读续集的“Connecting to a database”的文件来获得一个想法是什么的ORM可以做,以“Sequel: The Database Toolkit for Ruby”和“Cheat Sheet”的一个想法是什么续集能做到一起。

+0

谢谢Tin .. :) – Ashwini 2013-04-18 06:40:38

相关问题