Re: Acceder a multiples bases de datos

Ok, con lo que me has dado funciona. Pero no a la vez, o no se como
llamarlo.
Ahora, lo que me salen son los datos de la base de datos B y antes solo
salian los de la base de datos A
Lo que no se es como desde el mismo controlador hacer referencia a A y a
B simultaneamente.

No se si me explico bien. Encima no estoy nada suelto en desarrollo con
rails

----- Mensaje original ----
De: Xavier N. [email protected]
Para: La lista sobre Ruby On Rails (rubyonrails.com) en castellano
[email protected]
Enviado: viernes, 26 de enero, 2007 11:42:54
Asunto: Re: [Ror-es] Acceder a multiples bases de datos

On Jan 26, 2007, at 11:25 AM, congrio wrote:

¿Alguien se ha encontrado con esta situación?
Necesito acceder simultáneamente a dos bases de datos. He intentado
usar las explicaciones de las páginas que adjunto, pero no doy con
la tecla.

La idea es la siguiente: Añades una entrada mas para esa base de
datos en config/database.yml con una etiqueta de tu eleccion (este
ejemplo usa SQL Server):

foo:
adapter: sqlserver
mode: odbc
dsn: YOUR_DB_DEFINITION_NAME
username: USERNAME
password: PASSWORD

y los modelos que son persistentes en esa base de datos tienen una
linea tal que asi

class Documents < AR::Base
establish_connection :foo

end

Ya esta.

Si tienes varios modelos en esa base de datos conviene meter una
clase de por enmedio para no tener que repetir eso en cada una:

class ModelInFoo < AR::Base
self.abstract_class = true
establish_connection :foo

end

class Documents < ModelInFoo

end

El detalle de marcar como abstracta a ModelInFoo le dice a AR que esa
misma clase no es persistente.

Ves como va?

– fxn


Ror-es mailing list
[email protected]


LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
http://es.voice.yahoo.com

On Jan 26, 2007, at 12:22 PM, congrio wrote:

Ok, con lo que me has dado funciona. Pero no a la vez, o no se como
llamarlo.
Ahora, lo que me salen son los datos de la base de datos B y antes
solo salian los de la base de datos A
Lo que no se es como desde el mismo controlador hacer referencia a
A y a B simultaneamente.

No se si me explico bien. Encima no estoy nada suelto en desarrollo
con rails

Ahi lo que veo que has de distinguir claramente es que la base de
datos esta asociada a los modelos.

Por defecto en Rails todos los modelos usan la misma base de datos
(por ejemplo, production), que es aquella en cuyas tablas se hacen
persitentes. Pero puedes tener los modelos distribuidos por varias
bases de datos. Lo que si que ha de pasar es que cada modelo este
asociado a una sola de ellas (y por lo general sus relacionados).

Si lo tiene configurado asi con lo que explique en el anterior mail
va todo solo, no has de preocuparte de la base de datos de la que
viene User.find(1), ni donde se graba document.save, AR ya lanza el
SQL contra la que toque transparentemente.

– fxn

P.D.: No se soportan transacctiones que involucren modelos de mas de
una base de datos.