Rails 突发奇想,一个 APP 里面可以混用 MONGODB 和 MYSQL 不?

inetufo · 2012年02月08日 · 最后由 leslin123 回复于 2014年02月21日 · 6695 次阅读

RT,突发奇想,在 一个 APP 里面可以混用 MONGODB 和 MYSQL 作为数据库不?

#1 楼 @ashchan 怎么搞的?只有一个 database.yml 配置文件啊。

Mondoid 这样的库不用 database.yml 而是用 mondoid.yml 的。 另外,即便是都用 database.yml,也可以在里面加不同的内容(只不过是个 yaml 文件嘛),最复杂的情形下就是 ActiveRecord 和 MongoDB 各取其虚。

#3 楼 @ashchan 哦,大概明白了,多谢

维护两个数据库很累的

每个 model 里都可以手动管理数据库连接的,所以 200 种数据库都不是问题。 但尽量不要这样做

维护两个的确费劲,但可以发挥各自的优点。

如果要以 ActiveRecord 为主的话,别忘了指定 ORM,不然 mongoid 会抢走 ActiveRecord 的地位,让你的 generator 统统以 mongoid 运作:

config.generators do |g|
  g.orm :active_record
end

我混用过。但是如果两个模型分别是 ac 和 mongoid,直接通过模型关系调用会有问题。

这个是可以的我的配置如下:

在 environment.rb 文件中加上

MongoMapper.setup(Rails.configuration.database_configuration,"res",:logger => Rails.logger)`

res: 
  host: 127.0.0.1
  port: 27017
  username:                                             
  password: 
  database: app_name

然后在model中写好model
class User 
 include MongoMapper::Document
end

ok, 你可以使用user 这个model 了 

nosql 和 sql 并进

需要 登录 后方可回复, 如果你还没有账号请 注册新账号