Foros del Web » Programando para Internet » Ruby »

Separacion en varias bases de datos

Estas en el tema de Separacion en varias bases de datos en el foro de Ruby en Foros del Web. Tengo una aplicacion rails que tiene una base de datos con datos estadisticos y datos de usuarios, dispositivos y otras labores administrativas y quiero separarlas ...
  #1 (permalink)  
Antiguo 06/08/2010, 16:49
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 16 años, 5 meses
Puntos: 61
Separacion en varias bases de datos

Tengo una aplicacion rails que tiene una base de datos con datos estadisticos y datos de usuarios, dispositivos y otras labores administrativas y quiero separarlas en 2 (la original, y otra nueva de estadisticas, que tome las tablas que ya tengo definidas para eso)

Averigue que es posible tener 2 bd y basta poner

establish_connection "bd2"

en la clase para que la tome desde la otra bd (la que llamare bd2).

Con ello copie las tablas que requeria tener en la otra base de datos, parti todo de nuevo, y aparentemente funciona, pero algunas relaciones has_one aparecen como errores, puesto que el "SELECT" que genera da a entender que esta considerando que todas las tablas son de la bd2 y no como necesito: algunas aqui y otras alla.

Mas datos:

1.
El error que aparece en production.log:

ActionView::TemplateError (Mysql::Error: Table 'bd2.last_registers' doesn't exist: SELECT count(DISTINCT `devices`.id) AS count_all FROM `devices` LEFT OUTER JOIN `last_registers` ON last_registers.device_id = devices.id WHERE ((`last_registers`.`created_at` > ADDDATE(NOW(), -7)) AN
D (`devices`.account_id = 54)) ) on line #50 of app/views/layouts/main.rhtml

2.
La clase device, que en este SQL aparece, tiene una linea asi:

has_one :last_register, :class_name => 'LastRegister', :order => 'created_at DESC'

Mientras que la tabla device la quiero mantener en la bd2, la tabla LastRegister la quiero tener en el lado estadistico.

3.
(la clase device tiene la linea: establish_connection "bd2"
mientras que la clase LastRegister no).


Hay una manera de especificar esto correctamente?

Etiquetas: mysql, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:07.