Hello,
I have been wrestling for a couple of days trying to make my application work with 2 different databases simultaneously. Finally got it running but I am a bit disappointed at what I needed to do in order to make it work. I have a couple case scenarios:
First case scenario: MySQL A: 6 tables MySQL B: 1 table
Following instructions from the AWDWR book and any other source of information I've read I add an **ActiveRecord::Base.establish_connection()** declaration in the model for the table in MySQL B.
Seems simple, but did not work. I tried adding the connection parameters inside the model and also using a symbol to reference a 'database.yml' entry. Nothing.
Finally, when I was getting ready to ask for help I had the idea that made it work. I added **self.table_name = 'my_db.my_table_name'** in every model (including the main DB, named 'A' in this example) and everything started working.
Second case scenario: MySQL: 6 tables Oracle: 1 table
Same as above but in addition to adding the **self.table_name** stuff I needed to add in every table of the main (MySQL) DB an **ActiveRecord::Base.establish_connection()** declaration pointing to either 'development', 'test' or 'production', depending on which DB I was using.
I thought that Rails would 'know' which DB to use. Am I wrong? Should I have added any type of setup value in 'environment.rb'/other place to avoid all this?
Thanks.
Pepe