Вопрос

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

Я попытался установить database: или host: Поля в базе данных.

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

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

Это было полезно?

Решение

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

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

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

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

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

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

Другие советы

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

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

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

Одна очень важная вещь, которую я обнаружил по пути: Вы должны перезапустить сервер Devs Dever между каждым модом базы данных. Я потратил много времени, не зная этого. По какой -то причине настройка DataMapper не поднимала изменения здесь, как нормально с Dev Server.

История:

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

# 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. Анкет Он ставит сид в host и не указывает database Поэтому я попробовал то же самое в Database.yml. Это сработало.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top