2011-12-29 23 views
14

私は、あるデータベースから別のデータベースにデータを移行するコードを記述しています。 ActiveRecordはARを使っているRailsアプリに既に関連付けられているので、ActiveRecordを使っています。rails、activerecord、現在の接続仕様を取得

一部のデータは上書きされるため、接続先データベース接続に使用されている実際の接続辞書/仕様をユーザーに知らせる確認プロンプトを表示します。アダプター、ホスト、ユーザー名、パスワード、データベース、database.ymlにリストするものを知っています。

私が書いているもののモデルをとり、SomeModel.connectionを求めてもいいですが、ライブ接続オブジェクトから実際の接続仕様を取得するAPIはまったくないようです。

本当に?何か不足していますか?他のアイデア、ドキュメント化されていないapi?

答えて

45

モデルにconnectionを呼び出す方法と同様に、ActiveRecord :: Baseでconnectionを呼び出すことができます。

ActiveRecord::Base.connection_config 

Look at the docs for ActiveRecord::Baseなど、接続に関する属性を取得または設定できる他の方法があります。

+0

はい、私はこれを行う方法を知っています。それは、私に、いくつかのModelingコネクションを呼び出すことと同じような行動を返すのです。私はむしろsomeModel.connectionを呼び出したいと思います。なぜなら、アプリケーションが異なるモデルに対して異なるものを使用している場合に、私は_right_接続を持っていることが分かっているからです。しかしどちらの場合でも、これは私の質問であり、答えではありません。ホスト/ポート/データベース/ etcを#connectionで返されたオブジェクトから取得する方法がないことがわかります。それは私の質問です。そして私はドキュメントを見てきました。 – jrochkind

+0

ハァッ、私の質問にあなたが答えなかった間、あなたは私にそれを導いた。私はActiveRecord :: Baseで十分注意深く見ていなかったと思いますが、私はConnectionAdapterなどに集中していました。 #connection_configは私が望むもので、特定のモデルで呼び出すことができます。SomeModel.connection_config – jrochkind

+0

解決策を見つけることができてうれしいです。 「実際の接続仕様を実際の接続オブジェクトから取得するAPIはまったくないようです」と言ったとき、モデルクラスで呼び出さずに接続統計情報を取得したいと解釈しました。私は答えを更新して、適切な解決策を反映させます。 – Batkins

8

答えはSomeModel.connection_config

関連する問題