是否可以在rails應用程序中追加兩個數據庫?例如,SQLite數據庫是可移植的。我可以從另一臺服務器上下載SQLite數據庫。當rails應用程序啓動時,它會掛載數據庫。我可以將所有數據從另一個數據庫追加到現有數據庫嗎?可能是SQLite提供了一種合併數據庫的方法?Rails追加數據庫
1
A
回答
2
我不確定你說的「在應用程序中附加數據庫」是什麼意思。但是,您可以在應用程序中使用2個不同的(使用不同的方案)數據庫。例如:
的config/database.yml的
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: project_dev
pool: 5
username: project
password:
test:
adapter: mysql2
encoding: utf8
reconnect: false
database: project_test
pool: 5
username: project
password:
sqlite:
development:
adapter: sqlite3
database: db/development.project.db
pool: 5
timeout: 5000
test:
adapter: sqlite3
database: db/test.project.db
pool: 5
timeout: 5000
型號:
所有源碼模型抽象模型; 使用connection ninja寶石
class SqliteModel < ActiveRecord::Base
self.abstract_class = true
use_connection_ninja(:sqlite)
end
sqlite的模型
class Book < SqliteModel
set_table_name :Books
set_primary_key :BookID
belongs_to :volume, :foreign_key => :VolumeID
has_many :chapters, :foreign_key => :BookID
end
Mysql的模型
class Highlight < ActiveRecord::Base
# ...
end
你甚至可以用在不同的數據庫表之間的關聯。但如果你問的是使用2個數據庫的方法(即只是不同的數據),那麼我的答案是否定的,這是不可能的(儘管我可能是錯的)。我認爲這是一個關於複製,同步,備份或類似的問題 - 數據庫層,而不是應用程序。
當然,您可以在兩個數據庫中都有兩個相同的表,兩個模型 - 每個數據庫一個,然後只是將記錄從一個複製到另一個。但Rails不會自動完成。
1
如果想要的「種子」您的數據的數據庫從外部源,就像一箇中央位置,最好的辦法是:
- 提供這樣的數據轉換成一個簡單的迭代格式(如CSV, JSON或YAML);
- 將這些數據合併到您的應用程序的初始化數據庫中,假設它不存在。
我在某些項目上做了這樣的事情。我不會,但是,自動執行合併:我寧願使用db/seeds.rb
文件和rake db:seed
任務:
if State.count == 0
State.transaction do
CSV.foreach("#{::Rails.root}/db/seed_data/states.csv", 'r') do |row|
code, acronym, name = *row
State.create! code: code, acronym: acronym, nane: name
end
end
end
在這段代碼中,我從一個本地文件裝載數據,但你可以很容易改變遠程文件使用Net::HTTP
。
相關問題
- 1. 追加數據庫?
- 2. 追加數據
- 3. 追加數據
- 4. PHP - 將變量追加數據庫ID
- 5. rails添加到數據庫
- 6. 追加數據列
- 7. JTable沒有從數據庫將數據追加
- 8. 將數據從數據庫追加到Asp.Net中的Excel
- 9. 將數據從Access數據庫追加到SQL Server中
- 10. 追加HTML數據的jQuery
- 11. parse.com追加檢索數據
- 12. Python追加數據反轉
- 13. 追加新的數據
- 14. 在excel中追加數據
- 15. 在批中追加數據
- 16. 追加數據,使用R
- 17. C#追加數據到xlsx
- 18. 追加和導入數據
- 19. 加密整個Rails數據庫
- 20. 在Rails中增加數據庫值
- 21. 將外鍵添加到rails數據庫
- 22. Rails jquery ajax得到響應200,但數據不追加
- 23. Ruby/Rails:追加到proc?
- 24. 將數據追加到已經有數據的MySQL數據庫字段
- 25. Rails數據庫Lifecyle
- 26. 追加到Rake數據庫:在Rails種子和運行它沒有重複的數據
- 27. 追加數據加載的問題
- 28. 循環根據用戶輸入將數據追加到sql數據庫
- 29. 如何從rails控制檯向數據庫添加數據
- 30. createCommand '被追加到查詢生成數據庫異常
你不應該在生產中使用SQLite,因爲它不是爲這種負載設計的。 – 2012-03-11 19:34:33