Oracle and MySql simultaneously from rails app


#1

I searched this site on Oracle && MySql, nothing came up, so perhaps
this is a new topic for this forum.

I’d like to access two databases from the same application
simultaneously (well, more precisely, in rapid succession, calling one
first and then the other, as any “joins” will be done in the application
code).

One database is in MySql, the other is Oracle.

Possible? Howto? THANKS


#2

Possible.

Howto:

  1. Install the Rails-Oracle connection library(download from
    http://rubyforge.org/projects/ruby-oci8 and install)
  2. Add in this into database.yml (or something like it):

my_oracle_connection:
adapter: oci
username: ruby
password: ruby
host: RAILS

  1. Create a model:

class MyOracleModel < ActiveRecord::Base
set_table_name “my_oracle_table_name”
establish_connection “my_oracle_connection”
end

  1. Use the model as any other ActiveRecord model

  2. Mix and match with your MySQL models, only be careful with the
    relationships.

da plutes wrote:

Possible? Howto? THANKS


Sau S.


http://www.projectible.com
http://jaccal.sourceforge.net


#3

Thank you Sau S…


#4

…never mind w.r.t. previous – I put the tnsnames.ora defined name
(which happens to be the same as the database name) in the host
parameter and it works.

onwards


#5

I installed the Rails-Oracle connection library. Walking before I run
– first I am trying to get Oracle up on Rails before I do both MySql &
Oracle. So, this is in database.yml:

development:
adapter: oci
database: dbname
username: user
password: passwd
host: hostname

I am able to connect to the Oracle database using SqlPlus and run
queries – for instance this succeeds:

sqlplus user/passwd@dbname

But Rails seems to not see Oracle. When I try to generate a scaffold for
a controller that depends on a table in this database, I get:

ORA-12154: TNS:could not resolve service name

…and the controller and views are not created.

The service name for the database seems to be listed properly in my
tnsnames.ora file, which I expect given that I am able to connect via
sqlplus.

Any ideas?