2012-03-09 52 views
2

我是rails開發新手。我有一個簡單的問題,但Im難住,無法找到谷歌的幫助。初學者Ruby On Rails:從1個sqlite3數據庫讀取行並在我的rails應用程序中填充另一個sqlite3數據庫

我有一個sqlite3數據庫以外的我的Rails應用程序。我需要以某種方式將這些數據存入我的應用程序。

有什麼選擇?

我可以 1)以某種方式導入sqlite3數據庫及其內容到我的rails應用程序?如果是這樣,需要做出什麼樣的調整,因爲我知道rails將列插入到db中:「id」,「created at」,「updated at」

2)如果我無法將sqlite3導入到我的rails應用程序中,我可以從中讀取內容並將數據輸入到我的模塊中,然後輸入我的數據庫?

如果這些方法是可行的,哪個是建議的?

有人可以請我指點一下這個主題的資源。我應該在谷歌上尋找什麼這個主題?任何關鍵字?

也沒有人知道很好的軌道論壇,是積極的?

感謝,

回答

1

您可以指定你的database.yml,以該數據庫的單獨的連接。然後爲該數據庫中的一個表創建一個模型。在該模型中,使用establish_connection告訴ActiveRecord從其他數據庫中獲取該模型的數據。

查看to_model的一些示例。這將向您展示如何將數據轉換爲新的數據庫。

至於軌道插入id,created_at和updated_at,這隻會發生在您使用遷移來創建新表時。如果沒有告訴它,它將不會嘗試更改舊數據庫中的任何表。實際上,這些字段在新表中也是可選的。

+0

謝謝JohnColvin。我需要對database.yml文件進行任何更改嗎? – banditKing 2012-03-09 15:10:55

+0

是的。您需要創建一個新的連接。因此,請複製您現有的連接設置並將其粘貼回database.yml。將連接重命名爲'legacy'。然後更改連接信息以連接到您的舊數據庫。製作一個名爲'LegacyBase'的模型,並在該模型中放置'establish_connection「legacy」'。然後,所有遺留模型應該從LegacyBase擴展。這將意味着他們的數據來自舊的數據庫。然後在你的類中寫入一些to_model方法,將它們轉換到新的數據庫中並運行它們。 – JohnColvin 2012-03-10 16:14:07

相關問題