2012-05-03 34 views
1

我需要從sqlite3數據庫導入一些遺留數據到我的rails應用程序與postgresql數據庫。所以我創建了一個模型「企業」,包含了傳統sqlite3數據庫的所有列類型。我改變了database.yml文件,等等等等...... 在模型business.rb我加入這一行:與2個數據庫的軌應用程序 - 1用於讀取其他數據用於寫數據

class Business < ActiveRecord::Base 

establish_connection "citylistings_development" 
end 

這讓我連接到sqlite3的db和我創建了一個索引。 html.erb文件,我可以在瀏覽器中看到內容。

在控制我的代碼是這樣的:

class BusinessesController < ApplicationController 
def get_all 
    @businesses = Business.all 
end 

def create_db_entries 
self.get_all 
end 

def index 
respond_to do |format| 
    format.html #index.html.erb 

end 
end 
end 

現在我注意到,當我創建的模型「business.rb這引起我的PostgreSQL數據庫表

然而,顯然它的讀數。從我的sqlite3的數據庫中的數據,因爲它連接到數據庫。

我的問題是,

我怎麼寫數據,其outputing爲t他將index.html.erb文件導入到pg db中?這甚至有可能嗎?

模型實例可以同時連接到2個數據庫並從1讀取並寫入另一個?

我知道解決這個問題的一種方法是創建另一個模型「tempbiz」,它將寫入條目到pg數據庫,而「業務」模型從sqlite3數據庫讀取。我想知道「商業」模式是否可以完成這兩項任務?

感謝


編輯 這裏是我的database.yml按照下面的評論(IVE排除全部註釋掉的東西)

#=============================================================================== 
development: 
adapter: postgresql 
encoding: unicode 
database: XXX_development 
pool: 5 
username: XXX 
password: XXXX 
#=============================================================================== 
citylistings_development: 
adapter: sqlite3 
database: db/citylistings.sqlite3 
pool: 5 
timeout: 5000 
+0

可以得心應手不知何故,至少好知道:https://github.com/tchandy/octopus – apneadiving

+0

發表您的database.yml,它的怪異,業務表得到了在皮克創建D b????我不認爲你可以像你想要的那樣分割一個模型,你只需要創建一個循環,從傳統中讀取數據並寫入到pg數據庫。 – RadBrad

+0

添加了database.yml-請參閱上面編輯的部分謝謝 – banditKing

回答

1

我看到這個題目,你的演示文稿需要檢出secondbase寶石。引用它的文檔「SecondBase爲您的應用程序添加了第二個數據庫,而Rails允許您建立與任意數量的外部數據庫的連接,而Rails只能通過遷移和測試任務來管理單個數據庫。」

https://github.com/karledurante/secondbase 

它是因爲您需要它的確切原因而創建的。他們有一個他們需要導入的遺留數據庫。

乾杯, 肖恩

+0

謝謝我會檢查出來:) – banditKing

相關問題