Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: JuanjoXD en 17 Noviembre 2017, 01:26 am



Título: Django - cruzar dos tablas transaccionales de diferentes bases de datos
Publicado por: JuanjoXD en 17 Noviembre 2017, 01:26 am
Buenas noches amantes de la programacion.

Les traigo un desafío que me está costando horas de trabajo y que aún no logro resolver. Resulta que para un proyecto, necesito generar información cruzando tablas que se encuentran en distintas bases de datos.
Django nos presenta una forma muy venció la de trabajar con distintas bases de datos en forma paralela y m apear los modelos a estas sin mucho esfuerzo.
El problema surge en que, cuando intento hacer consultas en las vistas para obtener información de los modelos, django me genera un error, indicándome que no encuentra un id en una de las tablas que intento cruzar. Hasta el momento lo único que pude encontrar es que django necesita que todos sus modelos tengan id y que el mismo este reflejado en las tablas de la DB. Esto no me es posible ya que no puedo modificar la tabla de la DB.

Alguien conoce alguna forma de hacer esto? Ya lo hice con sal puro desde las vistas y funciona, la cuestión es que, no sólo no aprovecho la abstracción en la capa de modelos para trabajar con objetos sino que cuando debo hacer consultas de muchos a muchos tengo que iterar al menos una de las tablas que estoy cruzando (seria la tabla desde la que hago el join) y esto como entenderán supone una gran carga de transacciones para la DataBase. Debo minimizar esto último ya que otros sistemas dependen de la DB y hay que optimizar los accesos a la misma.

Desde ya agradezco las potenciales soluciones que me puedan llegar agradezco brindar. Si alguien quiere información adicional, pidanla. Pero creo que sin entrar en detalles, la idea de lo que estoy buscando se entiende...


Título: Re: Django - cruzar dos tablas transaccionales de diferentes bases de datos RESU
Publicado por: JuanjoXD en 2 Noviembre 2019, 06:47 am
[RESUELTO]

Por si alguén tubo el inconveniente.

El ORM de django necesita para poder transformar los registros de la DDBB en objetos, que todos los registros tengan una PK en la tabla. Luego django se encarga de manejarlos con su ID original. Asi que si tenes alguna tabla sin la clave unica para cada registro hay que crearla.

Saludos.