Re: Experiencias migrando db SqlServer a postgresql

From: Gustavo Rosso <grosso(at)sadaic(dot)org(dot)ar>
To: Luis Fernando Lopez Aguilar <flopezg333(at)gmail(dot)com>
Cc: Calabaza <calalinux(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Experiencias migrando db SqlServer a postgresql
Date: 2009-01-15 14:06:09
Message-ID: 496F42D1.70901@sadaic.org.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Esto creo que se puede resolver mediante triggers, invocando una funcion
antes del insert.
Gustavo

Luis Fernando Lopez Aguilar escribió:
> 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
> <mailto:calalinux(at)gmail(dot)com>> escribió:
>
> 2009/1/14 Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar
> <mailto:gabrielrferro(at)yahoo(dot)com(dot)ar>>:
> > ----- Mensaje original ----
> >
> >> De: Gustavo Rosso <grosso(at)sadaic(dot)org(dot)ar
> <mailto:grosso(at)sadaic(dot)org(dot)ar>>
> >> Para: Miguel Angel <mvillagomez(at)sayab(dot)com(dot)mx
> <mailto:mvillagomez(at)sayab(dot)com(dot)mx>>; pgsql-es-ayuda(at)postgresql(dot)org
> <mailto: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 Gabriel Ferro 2009-01-15 14:28:18 Re: Experiencias migrando db SqlServer a postgresql
Previous Message Luis Fernando Lopez Aguilar 2009-01-15 12:52:03 Re: Experiencias migrando db SqlServer a postgresql