私たちのアプリでは、MySQLデータベースとMongoデータベースなどのさまざまなデータソースからデータを取得する必要があります。
さまざまなデータソースからデータをプルし、Rails.cacheを活用してクエリを高速化するようにモデルを構成することは可能ですか?現在、Railsの構成ファイルは単一のデータソースのみをサポートしているようです。
Rails3.0.6を使用しています。
私たちのアプリでは、MySQLデータベースとMongoデータベースなどのさまざまなデータソースからデータを取得する必要があります。
さまざまなデータソースからデータをプルし、Rails.cacheを活用してクエリを高速化するようにモデルを構成することは可能ですか?現在、Railsの構成ファイルは単一のデータソースのみをサポートしているようです。
Rails3.0.6を使用しています。
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
ここで、Product モデルを Mongo に接続します。
class Product
include MongoMapper::Document
end
また、config/intializers/mongo.rb で mongo 設定を初期化する必要があります。
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
はい。
MySQL の場合:
class Example < ActiveRecord::Base
...
end
モンゴの場合:
class ExampleTwo
include MongoMapper::Document
...
end