# Join table database distribuiti

**URL:** <https://www.ruby-forum.com/t/join-table-database-distribuiti/156186>\
**Category:** IT\
**Created:** [December 22, 2008, 12:49pm UTC](https://www.ruby-forum.com/t/join-table-database-distribuiti/156186 "2008-12-22T12:49:57Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![qwerty73](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/9d8465/32.png) [@qwerty73](https://www.ruby-forum.com/u/qwerty73)\
**Post date:** [December 22, 2008, 12:49pm UTC](https://www.ruby-forum.com/t/join-table-database-distribuiti/156186/1 "2008-12-22T12:49:57Z")

</div>

Ciao,

dovrei fare una join table fra due modelli su due differenti database,  
ma non riesco proprio a capire come farlo.  
GeonamesTrips `e la mia join table che sta su db A insieme al modello  
Trips, Geonames invece sta su db B

Qualche idea?

database A: Trips, GeonameTrips

database B: Geonames

---

<div class="post-metadata">

**Author:** ![qwerty73](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/9d8465/32.png) [@qwerty73](https://www.ruby-forum.com/u/qwerty73)\
**Post date:** [December 22, 2008, 1:56pm UTC](https://www.ruby-forum.com/t/join-table-database-distribuiti/156186/2 "2008-12-22T13:56:10Z")

</div>

mmh… AFAIK l’unica cosa che devi fare è specificare il database  
alternativo  
in  
database.yml e poi inserire all’interno della classe che mappa la  
tabella su  
quel db  
aggiungere:

class Geonames \< ActiveRecord::Base  
estabilish\_connection :my\_second\_db  
end

poi, se hai rispettato tutte le altre convenzioni sull’habtm non  
dovresti  
avere problemi.

(attenzione solo al fatto che perdi un pò di  
transazionalità)  
Sandro

2008/12/22 Q Andrea [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> database B: Geonames
> 
> * * *
> 
> Ml mailing list  
> removed\_email\_address@domain.invalid  
> [http://lists.ruby-it.org/mailman/listinfo/ml](http://lists.ruby-it.org/mailman/listinfo/ml)

x

---

<div class="post-metadata">

**Author:** ![qwerty73](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/9d8465/32.png) [@qwerty73](https://www.ruby-forum.com/u/qwerty73)\
**Post date:** [December 22, 2008, 2:19pm UTC](https://www.ruby-forum.com/t/join-table-database-distribuiti/156186/3 "2008-12-22T14:19:37Z")

</div>

non ho ben capito cosa intendi comunque la connessione secondo  
database funziona, non ha nessun problema. il problema è nella join  
table, non riesco a farla fra due tabelle su due db diversi

---

<div class="post-metadata">

**Author:** ![qwerty73](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/9d8465/32.png) [@qwerty73](https://www.ruby-forum.com/u/qwerty73)\
**Post date:** [December 22, 2008, 2:33pm UTC](https://www.ruby-forum.com/t/join-table-database-distribuiti/156186/4 "2008-12-22T14:33:46Z")

</div>

Che errore ti torna ?

---

<div class="post-metadata">

**Author:** ![qwerty73](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/9d8465/32.png) [@qwerty73](https://www.ruby-forum.com/u/qwerty73)\
**Post date:** [December 22, 2008, 2:40pm UTC](https://www.ruby-forum.com/t/join-table-database-distribuiti/156186/5 "2008-12-22T14:40:12Z")

</div>

ActiveRecord::StatementInvalid: Mysql::Error: Table  
‘geonames.geonames\_trips’ doesn’t exist: SELECT \* FROM `geonames`

va a cercare la join table nel db sbagliato.

---

<div class="post-metadata">

**Author:** ![qwerty73](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/9d8465/32.png) [@qwerty73](https://www.ruby-forum.com/u/qwerty73)\
**Post date:** [December 22, 2008, 2:40pm UTC](https://www.ruby-forum.com/t/join-table-database-distribuiti/156186/6 "2008-12-22T14:40:48Z")

</div>

mmm o forse sono io che l’ ho messa nel db sbagliato? ovviamente  
preferirei tenerla nel db principale

---

<div class="post-metadata">

**Author:** ![qwerty73](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/q/9d8465/32.png) [@qwerty73](https://www.ruby-forum.com/u/qwerty73)\
**Post date:** [December 22, 2008, 3:17pm UTC](https://www.ruby-forum.com/t/join-table-database-distribuiti/156186/7 "2008-12-22T15:17:50Z")

</div>

Azz… non ci avevo pensato…  
mi sa che l’unica soluzione è uilizzare le due opzioni  
finder\_sql e insert\_sql per esplicitare la stringa di ricerca di  
inserimento:

Trovi una documentazione qui:

> **[ActiveRecord::Associations::ClassMethods](https://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html)**
>
> Associations are a set of macro-like class methods for tying objects together through foreign keys.

alla voce ‘Options’
