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
on 2006-05-16 03:19
on 2006-05-16 04:12
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 3. Create a model: class MyOracleModel < ActiveRecord::Base set_table_name "my_oracle_table_name" establish_connection "my_oracle_connection" end 4. Use the model as any other ActiveRecord model 5. Mix and match with your MySQL models, only be careful with the relationships. da plutes wrote: > Possible? Howto? THANKS > > > -- Sau Sheong http://blog.saush.com http://www.projectible.com http://jaccal.sourceforge.net
on 2006-05-16 19:21
Thank you Sau Sheong.
on 2006-05-17 06:17
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?
on 2006-05-17 08:00
...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