Re: Problemas al actualizar una BD

From: "Agustin Casiva" <casivaagustin(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Problemas al actualizar una BD
Date: 2008-01-10 23:48:55
Message-ID: 646eb5870801101548r9bca36fma3d6c4192e3d6071@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Jan 10, 2008 4:26 PM, Carlos Mendez <lucas1850(at)gmail(dot)com> wrote:
> Hola,
>
> Estoy realizando un sistema que centraliza en un servidor toda la
> informacion de los colegios como ser alumnos, profesores y notas, los
> colegios se conectan al servidor central a traves de internet, pero sucede
> que no todos los colegios tienen internet y me dijeron que no dejara de lado
> a esos colegios, bueno, lo que a mi se me ocurre es instalarles un sistema
> local a cada colegio que no tenga conexion a internet y despues pedirles un
> backup de su bd local y subir este backup a la bd del servidor central.
>
> aqui viene el problema,
> cuando yo intento subir un backup que tiene registros que ya estan en la bd
> central en el sistema no los carga me dice error lo cual esta muy bien, pero
> tampoco inserta los registros nuevos lo cual yo quisiera, es decir
> supongamos que me dieron un primer backup de un colegio que tiene la tabla
> alumnos con 10 registros, supongo que ese bakcup se subira sin ningun
> problema al servidor central porque son registros nuevos, pasado algun
> tiempo me daran el segundo backup del colegio para que lo cargue al servidor
> central y supongamos que contiene en la tabla alumnos 15 registros(10
> antiguos y 5 nuevos), cuando intente subir esta tabla me dara error pues la
> bd central ya tiene los 10 primeros registros y no insertara los 5 nuevos
> registros que no tiene,
> lo que busco es que cuando intente subir el backup, se inserte solo los
> nuevos registros es decir aquellos registros que estan en el backup de la bd
> del colegio y que no esten en la bd central, y que si en el colegio se
> modifico algun registro antiguo este tambien se pueda modificar cuando se
> suba el backup.
> En resumen que se inserte solo los nuevos registros, que se modifiquen los
> que se han modificado en la la bd del colegio, y que los registros que estan
> contenidos en el backup pero que ya estan en la bd central simplemente sean
> ignorados y que no salga error y que solo se inserten los registros nuevos o
> modificados
>
> ¿Como hago esto? existen funciones o comandos especiales de pgsql para
> realizar el backup o para realizar la subida a la base de datos central de
> manera que haga lo que deseo? o algun software especial?
>
> Gracias de antemano por la ayuda,
> saludos.

No me parece una buena idea lo que planteas, tu mismo explicas por
que, pero ademas los backups no fueron pensados para hacer lo que tu
deseas hacer.
Mi recomendación es que busques alguna herramienta para buscar
diferencias entre los datos, he visto varias en sourceforge, más
precisamente en la sección database, deberías probar la que mejor se
ajuste a tus necesidades.

Si no encuentras alguna herramienta una opción un poco más laboriosa
es que crees triggers de control por cada tabla que te interese
guardar en las operaciones de INSERT, UPDATE y DELETE de tal manera de
ir guardando por cada tabla los datos con la operación
correspondiente, posteriormente descargas dicha información de la base
en algun formato como CVS y por último es fácil hacer un programa que
cargue dicha información a tu base maestra.

Espero haber sido de ayuda

Saludos

--
Agustin Casiva
http://www.osis.com.ar
casivaagustin(at)gmail(dot)com
http://www.casivaagustin.com.ar

Para leer adjuntos necesitará Open Office http://es.openoffice.org/programa/

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message marcelo Cortez 2008-01-10 23:50:42 Re: [GENERAL] 8.3beta bug or feature?
Previous Message Julio Cesar Sánchez González 2008-01-10 22:23:32 Re: Problemas al actualizar una BD