Использование tnsnames.ora в database.yml - PullRequest
1 голос
/ 20 января 2011

Как я могу использовать информацию о соединении с базой данных в tnsnames.ora при соединении с Rails?

Я попытался установить поля database: или host: в файле database.yml в SID, но ни один из них не работал.

Я проверил, что sqlplus может подключаться к базе данных, поэтому tnsnames.ora верна.

Я использую DataMapper на Rails 3, если это вообще помогает.

Ответы [ 2 ]

1 голос
/ 23 января 2011

Я думаю, что мы говорили в #datamapper пару дней назад. Sqlplus - это часть программного обеспечения Oracle, которая взаимодействует с их системой балансировки нагрузки.

DataMapper предполагает, что между хранилищем и хранилищем данных есть сопоставление 1: 1. Как правило, это означает, что вы предполагаете, что распределение нагрузки выполняется на стороне хранилища данных (скажем, mysql или postgres кластеризация).

Тем не менее, ничто не мешает кому-то написать библиотеку, которая позволяла бы DataMapper выполнять «горячую» замену между группой репозиториев, если бы было возможно получить данные о загрузке каждого из хранилищ данных, связанных с каждым репозиторием (т.е. напишите собственный маленький маршрутизатор балансировки нагрузки).

Компания, в которой я работаю, использует репозитории DataMapper именно таким образом (для разделения записей, а не для распределения нагрузки).

это так же просто, как:

DataMapper.repository(seed_repository_symbol) { return your_code_block.call }
0 голосов
/ 15 марта 2013

После нескольких часов возни с этим я обнаружил ответ:

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

Я использую Rails 3.2.1, DM 1.2.0 на Win7 как с 32-битным, так и с 64-битным интерфейсом.установлены обычные клиенты Oracle.

Одна очень важная вещь, которую я обнаружил на этом пути: Вы должны перезапустить сервер rails dev между каждым модом database.yml, чтобы получить изменения. Iпотратил много времени, не зная этого.По какой-то причине установка DataMapper не собирала изменения здесь, как это обычно происходит с сервером dev.

History:

Мне сказали, что ответ был (другой разработчик из другой компании, которыйиспользует JRuby в Windows):

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

Это не сработало для меня, и я подозревал, что ответом было использование двоеточия (на основе синтаксиса DataMapper.setup):

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

Thisтоже не работал, поэтому я проверил ручные соединения в IRM и изучил ответ от DataMapper.setup.Он помещает SID в host и не указывает database, поэтому я попытался сделать то же самое в database.yml.Это сработало.

...