質問

レールに接続するときに、tnsnames.oraでデータベース接続情報を使用するにはどうすればよいですか?

設定しようとしました database: または host: sidへのdatabase.ymlのフィールドですが、どちらも機能しませんでした。

SQLPlusがデータベースに接続できるため、tnsnames.oraが正しいことを確認しました。

それがまったく役立つ場合、Rails 3でデータマッパーを使用しています。

役に立ちましたか?

解決

数日前に#datamapperで話したと思います。 SQLPLUSは、私が彼らのロードバランシングシステムであると思うものとインターフェイスするOracleソフトウェアの一部です。

データマッパーは、リポジトリとデータストアの間に1〜1のマッピングがあると想定しています。通常、これは、負荷分散がデータストア側(MySQLまたはPostgresクラスタリングなど)が処理されると仮定することを意味します。

ただし、各リポジトリに関連付けられた各データストアの負荷の読み取り値を取得できる場合、誰かがリポジトリのグループ間でデータをホットスワップできるようにするライブラリを作成することを妨げるものは何もありません(つまり、独自の小さな負荷を書きますバランスルーター)。

私が働いている会社は、この方法でデータを使用しています(ロードバランスではなく、レコードの分離性のため)。

それは次のように簡単です

DataMapper.repository(seed_repository_symbol) { return your_code_block.call }

他のヒント

自分でこれと数時間大騒ぎした後、私は答えを発見しました:

# WORKS
development:
  adapter: oracle
  host: devdb
  username: user
  password: pwd

Win7でRails 3.2.1、DM 1.2.0を使用しており、32ビットと64ビットの通常のOracleクライアントの両方がインストールされています。

途中で私が発見した非常に重要なことの1つ: Database.ymlの各modの間にRails Devサーバーを再起動して、変更をピックアップする必要があります。 私はこれを知らずに多くの時間を無駄にしました。何らかの理由で、DataMapperのセットアップは、DEVサーバーの場合と同じようにここで変更を取り上げていませんでした。

歴史:

答えはこれだと言われました(WindowsでJrubyを使用している別の会社の別の開発者による):

# DID NOT WORK
development:
  adapter: oracle
  database: user/pwd@devdb

それは私にとってはうまくいきませんでした、そして、私は答えがコロンを使用することであると疑っていました(に基づいて DataMapper.setup 構文):

# DID NOT WORK
development:
  adapter: oracle
  database: user:pwd@devdb

これも機能しなかったので、IRMで手動接続をテストし、からの応答を研究しました DataMapper.setup. 。 SIDを入れます host 示されていません database そこで、Database.ymlで同じことを試みました。機能した。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top