Join table database distribuiti


#1

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


#2

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

database B: Geonames


Ml mailing list
removed_email_address@domain.invalid
http://lists.ruby-it.org/mailman/listinfo/ml

x


#3

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


#4

Che errore ti torna ?


#5

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

va a cercare la join table nel db sbagliato.


#6

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


#7

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:


alla voce ‘Options’