Buenas amigos. Quisiera su opinion con este tema, como me sugieren
conectar un sistema con varias bases de datos esto para consultar o
actualizar en varias a la vz o si en algun momento quiero actuar sobre
una base de dato y en otra parte del sistema trabajar sobre otra.
Si, tienes razon, el post es un tanto antiguo y solo es ana’lisis de la
situacio’n.
Lo que finalmente hago para tener multiples conexiones es poner un
before_filter en ApplicationControler con el siguiente codigo:
En nuestro caso mapeamos la url con el siguiente route:
map.connect ‘:database/:controller/:action’
De esta manera, el primer elemento de la url es el que define la base de
datos a utilizar.
Como ves yo utilizo multiples base de datos por request y no por modelo
(no se cual es tu caso, ya que no lo explicas).
Tienes que tener cuidado con una cosa y es que, en el principio de los
tiempos de rails, ActiveRecord establece una conexion con la
configuracion establecida en config/database.yml . Esto hace que, con
nuestro sistema, esta primera conexion sea innecesaria. Nosotros lo que
hemos hecho es hacer un freeze del Rails y tocar el codigo para que no
la establezca.
Si, tienes razon, el post es un tanto antiguo y solo es ana’lisis de la
situacio’n.
Lo que finalmente hago para tener multiples conexiones es poner un
before_filter en ApplicationControler con el siguiente codigo:
En nuestro caso mapeamos la url con el siguiente route:
map.connect ‘:database/:controller/:action’
De esta manera, el primer elemento de la url es el que define la base de
datos a utilizar.
Como ves yo utilizo multiples base de datos por request y no por modelo
(no se cual es tu caso, ya que no lo explicas).
Tienes que tener cuidado con una cosa y es que, en el principio de los
tiempos de rails, ActiveRecord establece una conexion con la
configuracion establecida en config/database.yml . Esto hace que, con
nuestro sistema, esta primera conexion sea innecesaria. Nosotros lo que
hemos hecho es hacer un freeze del Rails y tocar el codigo para que no
la establezca.
Espero que todo esto te ayude
Un saludo
Roberto M. Oliva
Jhon K. escribio’:
Pero utilizaste algun plugin parea hacer eso?
cual seria el trabajo del before_filter en este caso?
yo lo que quiero es tener 2 o 3 bases de datos abiertas al mismo tiempo
para consultar o actualizar sea el caso, no entiendo lo que me quieres
decir con
"Como ves yo utilizo multiples base de datos por request y no por modelo
Coño pero si sabes a lo que me refiero esta demas tu comentario…
en verdad necesito solucionar mi problema de esos detalles que tu hablas
me ocupare luego, igual gracias
Si, tienes razon, el post es un tanto antiguo y solo es ana’lisis de la
situacio’n.
Lo que finalmente hago para tener multiples conexiones es poner un
before_filter en ApplicationControler con el siguiente codigo:
En nuestro caso mapeamos la url con el siguiente route:
map.connect ‘:database/:controller/:action’
De esta manera, el primer elemento de la url es el que define la base de
datos a utilizar.
Como ves yo utilizo multiples base de datos por request y no por modelo
(no se cual es tu caso, ya que no lo explicas).
Tienes que tener cuidado con una cosa y es que, en el principio de los
tiempos de rails, ActiveRecord establece una conexion con la
configuracion establecida en config/database.yml . Esto hace que, con
nuestro sistema, esta primera conexion sea innecesaria. Nosotros lo que
hemos hecho es hacer un freeze del Rails y tocar el codigo para que no
la establezca.
Espero que todo esto te ayude
Un saludo
Roberto M. Oliva
Jhon K. escribio’:
Pero utilizaste algun plugin parea hacer eso?
cual seria el trabajo del before_filter en este caso?
yo lo que quiero es tener 2 o 3 bases de datos abiertas al mismo tiempo
para consultar o actualizar sea el caso, no entiendo lo que me quieres
decir con
“Como ves yo utilizo multiples base de datos por request y no por modelo
(no se cual es tu caso, ya que no lo explicas).”
no entiendo lo que me quieres
decir con "Como ves yo utilizo multiples base de datos por request y no por modelo
Pues que, como pudiste leer en mi post, hay dos maneras de separar la
base de datos, por ActiveRecord o por ActionController y mi
implementacio’n se basa en la segunda.
(no se cual es tu caso, ya que no lo explicas)."
Gracias
Por cierto… Magic Multiconnections tiene buena pinta y parece bastante
flexible pero, a primera vista me preocupan las implicaciones
colaterales que puedan surgir y que apriori no ves: Tests, Migrations,
etc.
no entiendo lo que me quieres
decir con "Como ves yo utilizo multiples base de datos por request y no por modelo
Pues que, como pudiste leer en mi post, hay dos maneras de separar la
base de datos, por ActiveRecord o por ActionController y mi
implementacio’n se basa en la segunda.
(no se cual es tu caso, ya que no lo explicas)."
Gracias
Por cierto… Magic Multiconnections tiene buena pinta y parece bastante
flexible pero, a primera vista me preocupan las implicaciones
colaterales que puedan surgir y que apriori no ves: Tests, Migrations,
etc.
Un saludo
Roberto
En tu caso las bases de datos son iguales osea trabajas con los mismos
modelos?
voy a preguntar para saber si las base de datos son iguales o no,
sobre Magic Multiconnections voy a investigar mas antes de probarlo, la
verdad tu solucion me parece buena lo que me gustaria saber es si el
“params[:database]” lo madas de las vistas, como tu determinabas este
parametro.
no entiendo lo que me quieres
decir con "Como ves yo utilizo multiples base de datos por request y no por modelo
Pues que, como pudiste leer en mi post, hay dos maneras de separar la
base de datos, por ActiveRecord o por ActionController y mi
implementacio’n se basa en la segunda.
(no se cual es tu caso, ya que no lo explicas)."
Gracias
Por cierto… Magic Multiconnections tiene buena pinta y parece bastante
flexible pero, a primera vista me preocupan las implicaciones
colaterales que puedan surgir y que apriori no ves: Tests, Migrations,
etc.
Un saludo
Roberto
Hola.
Con respecto a las bases de datos una va a estar en postgres y la otra
en oracle y por lo que me dicen tampoco van a tener la misma estructura
osea no van a tener tablas en comun hasta ahora eso es lo que me dicen.
SI es asi y por lo que me has explicado mi implemetacion deberia ser por
ActiveRecord o me equivoco? si me puedes dar alguna sugerencia te lo
agradeceria
yo lo que quiero es tener 2 o 3 bases de datos abiertas al mismo tiempo
que es la que explica como hacerlo.
SI es asi y por lo que me has explicado mi implemetacion deberia ser por
ActiveRecord o me equivoco? si me puedes dar alguna sugerencia te lo
agradeceria
Gracias…
Pues si, en tu caso, me parece la mejor opcion la de establecer la
conexion por modelo.
Leete tranquilamente el enlace que te digo:
Que basicamente establece la conexion por modelo. De esta manera puedes
tener unas tablas en una base de datos y otras tablas en otra. De todas
formas no se como se comporta ni si te puedes encontrar con problemas
ocultos.
Buenas… avanzando con mi problema e llegado a una solucion que
hasta los momentos a funcionado pero que necesita seguir siendo sometida
a prueba y a ser mejorada.
Como te habia comentado tengo una base de datos en postgres y otra por
lo momentos de prueba en mysql creo q al final esta sera en oracle,
bueno las bases de datos tienen diferente estructura y para tener
conexion con ambas hic:
yo lo que quiero es tener 2 o 3 bases de datos abiertas al mismo tiempo
que es la que explica como hacerlo.
SI es asi y por lo que me has explicado mi implemetacion deberia ser por
ActiveRecord o me equivoco? si me puedes dar alguna sugerencia te lo
agradeceria
Gracias…
Pues si, en tu caso, me parece la mejor opcion la de establecer la
conexion por modelo.
Leete tranquilamente el enlace que te digo:
Que basicamente establece la conexion por modelo. De esta manera puedes
tener unas tablas en una base de datos y otras tablas en otra. De todas
formas no se como se comporta ni si te puedes encontrar con problemas
ocultos.
En la carpeta models estan todos los modelos de esta base de datos y
los modelos de las tablas de la base de datos en mysql, la
diferencia esta en que
2.1 Los modelos de postgres estan de esta manera
class TABLA < ActiveRecord::Base
end
2.2 los modelos de tablas que quiero consultar en mysql
class TABLA < ActiveRecord::Base
establish_connection(
:adapter => “mysql”,
:host => “localhost”,
:username => “root”,
:password => “sss4545hahghjagsyuiy54564”,
:database => “prueba”
)
end