Here's how it would look like:
class YourModel < ActiveRecord::Base
establish_connection :ube
end
-
Maurício Linhares
http://alinhavado.wordpress.com/ (pt-br) | http://blog.codevader.com/ (en)
On Sun, May 31, 2009 at 5:45 PM, pepe <[email protected]> wrote:
>
> Thanks Maurício,
>
> For that extra table I used either
> ActiveRecord::Base.establish_connection( :ube ) in the model, with the
> following in database.yml:
> ube:
> adapter: mysql
> database: ube
> user: root
>
> or
>
> ActiveRecord::Base.establish_connection(
> :adapter => 'mysql',
> :database => 'ube',
> :user => 'my_user' )
> in the model and no :ube declaration in database.yml
>
> As I understand using 'establish_connection' by itself would connect
> me to the 'current' DB, wouldn't it?
>
> Thanks.
>
> Pepe
>
> On May 31, 11:59 am, Maurício Linhares <[email protected]>
> wrote:
>> Stupid question, did you do: "ActiveRecord::Base.establish_connection"
>> or did you just call "establish_connection" in your model?
>>
>> As you might imagine right now, calling
>> "ActiveRecord::Base.establish_connection" is very different than
>> calling establish_connection in the model you want to connect to
>> another database.
>>
>> -
>> Maurício Linhareshttp://alinhavado.wordpress.com/(pt-br)
>> |http://blog.codevader.com/(en)
>>
>> On Sun, May 31, 2009 at 11:17 AM, pepe <[email protected]> wrote:
>>
>> > 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
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---