2013-04-04 110 views
1

在我的config/database.yml文件可以在rails應用上使用兩個sqlite3數據庫嗎?

# SQLite version 3.x 
# gem install sqlite3 
# 
# Ensure the SQLite 3 gem is defined in your Gemfile 
# gem 'sqlite3' 
development: 
    adapter: sqlite3 
    database: db/development.sqlite3 
    pool: 5 
    timeout: 5000 

# Warning: The database defined as "test" will be erased and 
# re-generated from your development database when you run "rake". 
# Do not set this db to the same as development or production. 
test: 
    adapter: sqlite3 
    database: db/test.sqlite3 
    pool: 5 
    timeout: 5000 

production: 
    adapter: sqlite3 
    database: db/production.sqlite3 
    pool: 5 
    timeout: 5000 

otherdb: 
    adapter: sqlite3 
    database: /c/Users/dsun/Documents/apeers/db/development.sqlite3 
    pool: 5 
    timeout: 10000 

,並在我的模型,我通過調用新的數據庫:establish_connection :otherdb

但這返回一個錯誤,database configuration does not specify adapter

所以是問題那sqlite3不能在一次使用2分貝?

如果是這樣,我該如何解決這個問題。

+0

看一看這個問題: http://stackoverflow.com/questions/10360705/how-to-use-multiple-databases-in-a-rails-app-using-the-database- yml – ply 2013-04-04 19:40:23

+0

你試圖尋找解決方案的根本原因是什麼? – 2013-04-04 21:09:03

回答

2

是的,當然,但在每個模型中,您應該定義要使用的數據庫。 您可以使用方法establish_connection來定義哪個數據庫應該使用當前模型。 更多這裏http://api.rubyonrails.org/classes/ActiveRecord/Base.html。但我可以推薦創建幾個基本活動記錄類來定義每個數據庫的名稱,然後從它們繼承你的模型類。

+0

非常感謝!我已經解決了這個問題〜原來的路線是在我的應用程序的路線下,所以我使用這個「../」在我的應用程序之外返回,並找到外部數據庫。我創建了一個外部數據庫的父模型,讓我的模型按照您的建議繼承,現在它正在工作! – sun 2013-04-05 14:46:16

+0

不客氣! – freeze 2013-04-06 13:33:38

相關問題