是否可以在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