2011-09-14 196 views
5

我試圖到多個數據庫中ROR application.My database.yml的連接是這個樣子 在database.yml文件多個數據庫連接

發展:

adapter: mysql 
username: root 
password: 
database: example_development 

私人:

adapter: mysql 
username: root 
password: 
database: example_private_development 

有可能使用establish_connection連接:私人

我的疑問是,如何用耙分貝:create.I我不是從谷歌能夠獲取解決方案。

請幫我清除它。

回答

6

嘗試

rake db:create:all 

是的,它可能有一個Rails應用程序的多個數據庫連接。

這是我做一次,我已經創建了兩個班,從ActiveRecord::Base繼承和設置這些類中的連接。

於是我繼承了我所有的車型在這些類中的一個,而不是直接ActiveRecord

下面是一個例子:

database.yml file 

#app uses two database 
#1 - test1 
#2 - test2 
test1: 
    adapter: mysql 
    encoding: utf8 
    database: test1 
    username: root 
    password: xxx 
    host: localhost 

test2: 
    adapter: mysql 
    encoding: utf8 
    database: test2 
    username: root 
    password: xxx 
    host: localhost 

然後,我有兩個TEST1和TEST2數據庫兩種型號:

class Test1Base < ActiveRecord::Base 
    self.abstract_class = true 
    establish_connection("test1") 
end 

class Test2Base < ActiveRecord::Base 
    # No corresponding table in the DB. 
    self.abstract_class = true 
    establish_connection("test2") 
end 

然後我根據數據庫繼承我的模型:

class School < Test1Base 
    #code 
end 

class Student < Test2Base 
    #code 
end 
+0

sameera嗨,你的答案是正確的。我有一個問題,如何可以遷移模型的「portal_development」。幫幫我... –

+0

嗨@Shamith,糟糕,這是一個錯字,這應該是env名稱,我編輯了上面的database.yml,因爲我用我現有的文件爲例忘了刪除一些線條,對不起... ...:d – sameera207

2

感謝您的答覆。

我們可以遷移特定數據庫的模型,例如

db:migrate RAILS_ENV="portal_development"'

而更多的變化,用於建立與DB.check連接修正如下

class Test1Base < ActiveRecord::Base 
    self.abstract_class = true 
    establish_connection :development 
end 

class Test2Base < ActiveRecord::Base 
    # No corresponding table in the DB. 
    self.abstract_class = true 
    establish_connection :portal_development 
end 

感謝sameera您的寶貴答覆。

歡呼

ShamithÇ