2013-04-18 119 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

相關問題