Re: Experiencias migrando db SqlServer a postgresql

From: "Luis Fernando Lopez Aguilar" <flopezg333(at)gmail(dot)com>
To: Calabaza <calalinux(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Experiencias migrando db SqlServer a postgresql
Date: 2009-01-15 12:52:03
Message-ID: b48ca6190901150452q55e0d3ebu4633635d99faf584@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola foro
Si hacemos comparaciones con el informix antes de insertar a la tabla al
campo definido como serial se le asigna valor cero y luego se inserta, eso
hace que el motor tome el siguiente valor, y sin importar si estas haciendo
un insert despues de un cargado a pulso de la tabla, cuando la tabla es
recien creada y luego se inserta toma el valor 1 ... pero si se viene de
importar valores, repito siempre toma el maximo valor mas 1 y ese valor lo
almacena en una variable que se llama SQLCA.SQLERRD[2] ..... Seria
interesante que esta caracteristica sea adicionada al motor de postgresql.

Saludos cordiales
Fernando Lopez
Santa Cruz Bolivia

El 15 de enero de 2009 7:26, Calabaza <calalinux(at)gmail(dot)com> escribió:

> 2009/1/14 Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar>:
> > ----- Mensaje original ----
> >
> >> De: Gustavo Rosso <grosso(at)sadaic(dot)org(dot)ar>
> >> Para: Miguel Angel <mvillagomez(at)sayab(dot)com(dot)mx>;
> pgsql-es-ayuda(at)postgresql(dot)org
> >> Enviado: miércoles 14 de enero de 2009, 13:39:31
> >> Asunto: Re: [pgsql-es-ayuda] Experiencias migrando db SqlServer a
> postgresql
> >>
> >> Yo hice esta experiencia, tratando de automatizar los maximo posible en
> >> sqlserver importe los datos de cada tabla.
> >> (Hay una aplicacion dentro del administrador corporativo que
> >> graficamente te permite hacerlo)
> >> El delimitador que use es el pipe ( | )
> >> Luego hice un scrip para que inserte todos los datos en postgres (Antes
> >> que esto ya tenia armado toda las estructuras de las tablas).
> >> Ejemplo del scrip:
> >>
> >> COPY adesaldo FROM '/home/postgres/datos/adesaldo.dat' DELIMITERS '|'
> >> WITH NULL AS '';
> >> COPY ajustes FROM '/home/postgres/datos/ajustes.dat' DELIMITERS '|' WITH
> >> NULL AS '';
> >> COPY anexo_lotes FROM '/home/postgres/datos/anexo_lotes.dat' DELIMITERS
> >> '|' WITH NULL AS '';
> >> .
> >> .
> >> .
> >> Espero te sriva.
> >> Gustavo
> >>
> >> Miguel Angel escribió:
> >> > El mar, 13-01-2009 a las 16:22 -0500, Ricardo Mendoza escribió:
> >> >
> >> >> Saludos a los miembros de la lista.
> >> >>
> >> >> Revisando los post en el archivo de la lista, se toca brevemente el
> >> >> tema sobre como migrar, desearia conocer experiencias sobre migracion
> >> >> de bases de datos sqlserver a postgresql,
> >> >>
> >> >
> >> > A modo de comentario te digo que migrarlo es algo sencillo pero
> tedioso
> >> > en cuestión de datos; pero para con funciones y disparadores tienes
> que
> >> > tratarlos de uno a uno para poder hacer la correcta conversión a el
> >> > lenguaje de plpgsql.
> >> >
> >> >
> >> >> en especial con referencia a
> >> >> como manejar la interaccion con aplicaciones remotas de tres capas o
> >> >> mas
> >> >>
> >> >
> >> > Para con esto he manejado programas a base de struts en java con 7
> >> > capas, no se si te refieras a esto pero en cuanto a la conexión con
> >> > postgres solo hay que dar una conexión válida, crear los archivos de
> >> > lectura y listo.
> >> >
> >> >
> >> >> y los equivalentes de SQL Server Reporting Services,SQL Server
> >> >> Analysis Services.etc. gracias
> >> >>
> >> >
> >> > Dos buenos equivalentes podrían ser las suites de Jasper Reports o
> bien
> >> > la suite de Pentaho, ambos tienen su propio reporteador, ambos pueden
> >> > conectarse a cualquier base por medio de un JDBC y ambos finalmente
> >> > tienen su propia herramienta de ETL y cubos (dentro de jasper report
> >> > este punto ya debería estar puesto que la última vez que entre ya se
> >> > hablaba de su desarrollo).
> >> >
> >> >
> >
> > Siempre me pregunte que cuando cargo datos desde archivos planos
> > que cuidado tendre que tener si en las tablas se usan campos serial..
> > ¿sera suficiente con asegurarse que estan inicializados correctamente
> estos campos en la tabla destino antes de importar?
> > Me explico.. si tengo la tablas factura con clave numfactserial, la
> > tabla productos con clave numprodserial y la tabla facturadetalle con
> > los campos integer numfac y numprod
> > de modo de lograr la relacion n a n, al llevarla a postgres deberia hacer
> > 1-asegurar que los iniciales de los seriales esten en 0 o 1 o lo que
> corresponda
> > 2- importar la tabla productos sin insertar la clave (ya que sera serial)
> > 3- importar la tabla facturas sin insertar la clave (ya que sera serial)
> > 4- importar la tabla facturadetella conteniendo los dos campos....
> >
> > Calculo que sera asi, de todas maneras en BD mas complejas se puede
> > complicar mas las cosas asi que no se sino sera mejor importar los
> > datos desde una funcion que haga los insert.
>
> > ¿que dicen?
> Yo me decanto por la opción 4 ya que si a un campo serial le insertas
> un dato ya no se ejecuta su secuencia, y luego puedes ver en que
> numero quedó ese campo en tu tabla y asignas ese numero (más uno si
> mal no recuerdo) a tu secuencia para que todo quede aceitado para tu
> software.
>
> De esta forma te aseguras que tu BD se encuentra íntegra ya que si
> borraste algun registro y su id difiere de la cantidad total de
> registros ya vas a tener problemas al importar datos usando el
> serial...
>
> Un abrazo.
> --
> §~^Calabaza^~§ from Villa Elisa, Paraguay
> --
> TIP 8: explain analyze es tu amigo
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gustavo Rosso 2009-01-15 14:06:09 Re: Experiencias migrando db SqlServer a postgresql
Previous Message Conrado Blasetti 2009-01-15 11:32:31 RE: Llamar a procedimiento el pgsql