1

Railsアプリケーションで2種類のデータベースを使用することは可能ですか?

私は 2 つのデータベースを使用しています。Postgresはあまり変化しないデータを保存し、MongoDB は動的に変化するデータを保存します。

これは有効なアプローチですか?これら 2 つのデータベース間を接続して、単一の Rails アプリケーションで操作することは可能ですか?

私が間違っている場合は、修正してください。

よろしく、バラン

4

2 に答える 2

0

はい、これは可能です。これは私の古いコードの例です(ただし、ここでは両方のDBにmysqlを使用していますが、アイデアを得ることができると思います)

database.ymlファイルで2つのデータベースを定義します

development: &defaults
  adapter: mysql
  encoding: utf8
  database: DB1
  enable_call: true
  username: 
  password: 
  host: 

portal_development: &defaults
  adapter: mysql
  encoding: utf8
  database: DB2
  enable_call: true
  username: 
  password: 
  host: 

モデルでは、上記のデータベースと組み合わせたモデルをベースにする必要があります

portal_base.rb

class PortalBase < ActiveRecord::Base
  self.abstract_class = true
  establish_connection "portal_#{Rails.env}"

  def self.table_name_prefix
    "DB1."
  end
end

default_base.rb

class DefaultBase < ActiveRecord::Base

  self.abstract_class = true

  establish_connection "#{Rails.env}"

  def self.table_name_prefix
    "DB2."
  end

end

それに応じてモデルを導き出します

class Client < PortalBase
  #code
end

あなたが今アイデアを持っていることを願っています:)

于 2012-12-31T11:51:06.430 に答える
0

見つかった解決策:

mongoidこれを実現するために gem を使用できます。

インストール手順

1) Gemfile を追加してコマンド"gem mongoid"を実行し、mongoid をインストールします。bundle

2) と入力して mongoid 構成を生成します。これにより、ファイルの近くに構成ファイル"rails g mongoid:config"が作成されます。このファイルで構成を Mongo サーバーに追加できます。mongoid.ymldatabase.yml

注 : Mongoid を追加すると、作成されるすべてのモデルはデフォルトで MongoDB 用に作成されます。Postgres 用の--ormモデルを生成するオプションを指定できます。

于 2013-01-16T12:23:58.133 に答える