我们的应用程序需要从不同的数据源中提取数据:一个是MySQL数据库,另一个是Mongo数据库。
是否可以配置模型从不同的数据源提取数据并利用Rails.cache快速查询?现在,Rails中的配置文件似乎只支持单个数据源。
我们正在使用Rails 3.0.6。
答案 0 :(得分:2)
Rails提供了使用多个数据库的约定。让我们展示如何使用Mango和Mysql。
将mysql视为主数据库。所以mysql的配置进入config / database.yml
config/database.yml
development:
#dev config goes here
test:
#test config goes here
production:
#production config goes here
现在考虑一下Mongo。在config / mongo_database.yml
中为Mongo放置另一个配置 config/mongo_database.yml
development:
#dev config goes here
test:
#test config goes here
production:
#production config goes here
现在我们将User模型连接到mysql:
class User < ActiveRecord::Base
#Active record by default connects with the primary database configuration
end
现在我们将产品型号连接到Mongo:
class Product
include MongoMapper::Document
end
你还需要在config / intializers / mongo.rb初个化mongo setttings
config/intializers/mongo.rb
Mongoid.configure do |config|
config = YAML.load_file(Rails.root.join("config", "mongo_database.yml"))[Rails.env]
host = config["host"]
config.master = Mongo::Connection.new.db(config["database"])
end
答案 1 :(得分:0)
是强>
对于MySQL:
class Example < ActiveRecord::Base
...
end
对于Mongo:
class ExampleTwo
include MongoMapper::Document
...
end