Ho un server che esegue Oracle, IP è 192.168.1.50.Non riesco a connettere l'app per le mie guide a Oracle
Sulla mia macchina Linux, ho bisogno di connettermi a questo server Oracle. Ho poi installato Oracle Instant Client e impostare le variabili d'ambiente di conseguenza:
OCI_INCLUDE_DIR =/home/Luc/instantclient_11_2/sdk/include
LD_LIBRARY_PATH =/home/Luc/instantclient_11_2
DYLD_LIBRARY_PATH =/home/Luc/instantclient_11_2/
OCI_LIB_DIR =/home/Luc/instantclient_11_2
ORACLE_HOME =/home/Luc/instantclient_11_2
inoltre ho installato la gemma appropriata:
ruby-oci8 (2.1.0)
Una volta che ho definito i miei modelli e corse rake db: migrate ho ottenuto il seguente messaggio di errore:
rake aborted!
ORA-12154: TNS:could not resolve the connect identifier specified
oci8.c:360:in oci8lib_191.so
/home/luc/.rvm/gems/ruby-1.9.3-p125/gems/ruby-oci8-2.1.0/lib/oci8/oci8.rb:123:in `initialize'
/home/luc/.rvm/gems/ruby-1.9.3-p125/gems/activerecord-oracle_enhanced-adapter-1.4.1/lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb:319:in `new'
/home/luc/.rvm/gems/ruby-1.9.3-p125/gems/activerecord-oracle_enhanced-adapter-1.4.1/lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb:319:in `new_connection'
/home/luc/.rvm/gems/ruby-1.9.3-p125/gems/activerecord-oracle_enhanced-adapter-1.4.1/lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb:429:in `initialize'
/home/luc/.rvm/gems/ruby-1.9.3-p125/gems/activerecord-oracle_enhanced-adapter-1.4.1/lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb:24:in `new'
/home/luc/.rvm/gems/ruby-1.9.3-p125/gems/activerecord-oracle_enhanced-adapter-1.4.1/lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb:24:in `initialize'
/home/luc/.rvm/gems/ruby-1.9.3-p125/gems/activerecord-oracle_enhanced-adapter-1.4.1/lib/active_record/connection_adapters/oracle_enhanced_connection.rb:9:in `new'
....
mia database.yml è:
development:
adapter: oracle_enhanced
host: 192.168.1.50:1521/orcl
username: USER
password: PASS
connessione sqlplus funziona perfettamente però:
sqlplus USER/[email protected]:1521/orcl
SQL*Plus: Release 11.2.0.3.0 Production on Wed Mar 21 17:34:26 2012
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
C'è qualcosa che manca in questo conf?
UPDATE
Ho testato da linea di comando e la connessione funziona bene:
rubino -rubygems -e "richiedono 'oci8'; OCI8.new ('USER', 'PASS' ., '192.168.1.50/ORCL') exec ('select * from utenti') do | R | mette r.join (''); end"
=> OK
stessa cosa da IRB :
ActiveRecord::Base.establish_connection(:adapter => "oracle_enhanced", :database => "//192.168.1.50/orcl",:username => "USER",:password => "PASS")
=> OK
ma ancora non funziona dalla mia applicazione Rails.
UPDATE 2
Utilizzando database invece di host fisso della cosa:
development:
adapter: oracle_enhanced
database: //192.168.1.50:1521/orcl
username: USER
password: PASS
avevo entrambe definite; la rimozione dell'host ha risolto il problema. – tamersalama