rails:656
From: Hiroshi Takagi <gollum@h...>
Date: Fri, 11 Nov 2005 16:12:01 +0900
Subject: [rails:656] Re: 複数プログラマでの開発/DB, application のshare
高木です。 おひさしぶりです、南木さん :-) On Fri, 11 Nov 2005 05:02:02 +0900 Nanki Haruo <nanki@m...> wrote: > config/environment.rb などに、 > > User.establish_connection( > :adapter => "mysql", > :host => "...", > :username => "...", > :password => "...", > :database => "..." > ) > > と記述すれば、ユーザ部分だけ別のDB を使うことができます。 これは、うまくいきませんでした。 config/database.yml に指定しているデータベース定義が効いているようです。 現在、テーブル Users, Roles の二つを新しい共有DB ( dbshared ) にコピーし てみたのですが、database.yml に指定されているDBにある Users, Roles が参 照されています。 では、べたに app/models/user.rb, role.rb にべたにハードコードしてやると、 DB/table は dbshared の User, Roles にちゃんと接続するのですが、 今度は、action がよびだされるたびにDBとの接続コネクションが二つずつ増え ていき、idle 状態のまま解放されません。 (PostgreSQL) う〜ん、どうしたものかな。 ML のアーカイブのRails #395 からの浦さんのスレッドも今頃拝見しましたが、 どうも、定石が見えませんねぇ〜。 ( 1 application = 1 DB にしろ、ということかな。) > session の共有は、それぞれのプロジェクトでmodel の定義などを共通にしていないと、インスタンスを復元で > きないという問題があるので、僕は必要なID(user_idとか)だけを受け渡すようにしていました。 はい、わたしももともと session では、primary key のID や、 flash[:notice] しかわたしてませんから、それはだいじょうぶです。 たまに、呼び出し元なんぞを flash にstore しておいて次のアクションで使っ てますが :-) Session クラスをおっかけてみたのですが、ActiveRecord Store すると、 database.yml 側のDB を見てしまうので(変えないほうがよさそう) プロジェクト間で共有するセッション情報は DrbStore で行こうか、 と考えています。 > 各プロジェクトで session情報を分ける場合は、プロジェクトごとに違うURLを割り当て、 > > app/controllers/application.rb 内で > > before_filter{ cookies[:domain] = "project-a.domain.co.jp" } > もしくは > before_filter{ cookies[:path] = "/project-a/" } # こっちは試したことがない > > などとしていましたが、もっとかっこいい方法があるかもしれません。 お、これもなかなかかっこよさそうですね、時間があれば試してみます。 ありがとうございました。 -- Hiroshi Takagi <gollum@h...> -- ML: rails@r... 使い方: http://QuickML.com/ Web Site: http://wiki.fdiary.net/rails/ ML Archives: http://www.fdiary.net/ml/rails/
651 2005-11-10 12:44 [gollum@h... ] 複数プログラマでの開発/DB, application のshare 654 2005-11-10 21:02 ┗[nanki@m... ] -> 656 2005-11-11 08:12 ┗[gollum@h... ] 657 2005-11-11 09:42 ┗[gollum@h... ]