Я работаю над сайтом Rails, который подключается к базе данных Oracle, и хотя я не создавал сайт с нуля, я занимаюсь техническим обслуживанием. Сайт использует плагин delayed_jobs для обработки некоторых фоновых задач, и я хотел бы иметь возможность запускать rake jobs:work
на сервере разработки для периодической обработки всех заданий в очереди (из-за конфигурации сервера, запуска демонизированная версия скрипта на сервере разработки не подходит). Однако всякий раз, когда я пытаюсь выполнить команду, я получаю следующую классическую ошибку Oracle:
error while trying to retrieve text for error ora-12154
Обычно я думаю, что это будет проблема аутентификации (например, неверные учетные данные в database.yml), но сайт работает и работает нормально (и выполняет много работы с базой данных). Я попытался добавить RAILS_ENV=production
в качестве параметра к rake
, чтобы заставить его работать в производственной среде, но получил ту же ошибку (есть две отдельные установки rails для рабочей и рабочей версий сайта, и я установил идентификаторы "development" и "production" в файле конфигурации db для разработки).
Я не уверен, что может быть причиной этой ошибки, и у меня нет большого опыта использования Oracle с рельсами. Есть предложения?
Большое спасибо!
Justin
РЕДАКТИРОВАТЬ (26.10.09): Все еще не могу понять, что является причиной проблемы здесь. Приложение продолжает работать (и общаться с базой данных) без проблем, но rake продолжает выдавать ошибки БД. То же самое делает скрипт / консоль, который показывает приглашение, но сначала жалуется с тем же сообщением об ошибке Oracle. Я буду продолжать искать, но у меня заканчиваются идеи ...
РЕДАКТИРОВАТЬ (26.10.09, позже): следуя совету этой ссылки , я установил ORACLE_HOME
и TNS_ADMIN
, чтобы они указывали на каталог, в котором находится tnsnames.ora. Простая установка ORACLE_HOME
не имела очевидного эффекта, но теперь, когда TNS_ADMIN
указывает на правильное место, я начинаю получать ошибки сегментации всякий раз, когда пытаюсь открыть консоль или запустить rake:
/usr/local/lib/ruby/site_ruby/1.8/oci8.rb:184: [BUG] Segmentation Fault
и безоговорочно загрузитесь обратно в подсказку. Есть еще идеи?