соединение rails oci8 работает для рейка, но не в консоли

Я пытаюсь подключиться к существующей базе данных Oracle EX 10g. Rake и oci вроде работают, но консоль rails вылетает.

Кое-что о моем окружении:

  • Центос 5.8
  • Руби 2.0.0p481
  • Рельсы 4.1.6
  • Oracle Database 10g Express Edition, выпуск 10.2.0.1.0

Драгоценные камни

  • activerecord-oracle_enhanced-адаптер 1.5.5
  • рубин-oci8 2.1.7

Я успешно запустил rake db:schema:dump, чтобы получить существующую схему.

Вот некоторый тестовый вывод от irb, который дает правильный вывод.

[root@BS-lite TestOracle]# irb
[?1034hirb(main):001:0> require 'oci8'
Warning: NLS_LANG is not set. fallback to US7ASCII.
=> true
irb(main):003:0> oci = OCI8.new('user****name', 'pass****word', 'localhost')
=> #<OCI8:BEESMART>
irb(main):004:0> oci.exec("select s_user_name, s_user_auto_login from s_user") do |record|
irb(main):005:1* puts record.join(',')
irb(main):006:1> end
John,0
test,1
=> 2
irb(main):007:0> 

Но когда я пытаюсь запустить «консоль рельсов», я получаю следующее.

[root@BS-lite models]# rails console
Warning: Running `gem pristine --all` to regenerate your installed gemspecs (and deleting then reinstalling your bundle if you use bundle --path) will improve the startup performance of Spring.
[root@BS-lite models]# oci8lib.c:134:in oci8lib_200.so: OCI Library Initialization Error - /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/libclntsh.so.10.1 (OCIError)
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `block in require'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:232:in `load_dependency'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/ruby-oci8-2.1.7/lib/oci8.rb:70:in `<top (required)>'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `block in require'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:232:in `load_dependency'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activerecord-oracle_enhanced-adapter-1.5.5/lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb:4:in `<top (required)>'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `block in require'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:232:in `load_dependency'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activerecord-oracle_enhanced-adapter-1.5.5/lib/active_record/connection_adapters/oracle_enhanced_connection.rb:112:in `<top (required)>'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `block in require'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:232:in `load_dependency'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activerecord-oracle_enhanced-adapter-1.5.5/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb:33:in `<top (required)>'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `block in require'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:232:in `load_dependency'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `require'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activerecord-oracle_enhanced-adapter-1.5.5/lib/activerecord-oracle_enhanced-adapter.rb:12:in `block in <class:OracleEnhancedRailtie>'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/lazy_load_hooks.rb:38:in `instance_eval'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/lazy_load_hooks.rb:38:in `execute_hook'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/lazy_load_hooks.rb:45:in `block in run_load_hooks'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/lazy_load_hooks.rb:44:in `each'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activesupport-4.1.6/lib/active_support/lazy_load_hooks.rb:44:in `run_load_hooks'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activerecord-4.1.6/lib/active_record/base.rb:326:in `<module:ActiveRecord>'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/activerecord-4.1.6/lib/active_record/base.rb:23:in `<top (required)>'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/spring-1.1.3/lib/spring/application.rb:314:in `active_record_configured?'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/spring-1.1.3/lib/spring/application.rb:248:in `disconnect_database'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/spring-1.1.3/lib/spring/application.rb:97:in `preload'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/spring-1.1.3/lib/spring/application.rb:140:in `serve'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/spring-1.1.3/lib/spring/application.rb:128:in `block in run'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/spring-1.1.3/lib/spring/application.rb:122:in `loop'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/spring-1.1.3/lib/spring/application.rb:122:in `run'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/gems/2.0.0/gems/spring-1.1.3/lib/spring/application/boot.rb:18:in `<top (required)>'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/rubystack-2.0.0-20/ruby/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from -e:1:in `<main>'

Аналогичный вопрос здесь, но я в моей оболочке установлены LD_LIBRARY_PATH и ORACLE_HOME. Может ли консоль rails использовать другой набор переменных?

Вот моя конфигурация подключения к базе данных

development:
   adapter: oracle_enhanced
   database: xe
   username: user****name
   password: pass****word

person code-minky    schedule 20.10.2014    source источник


Ответы (1)


В консоли rails вы должны добавить перед работой

требуется «oci8»

как в ирб. В моем случае все ОК

person Neodelf    schedule 12.12.2014