Re: Experiencias migrando db SqlServer a postgresql

From: Calabaza <calalinux(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Experiencias migrando db SqlServer a postgresql
Date: 2009-01-15 11:26:03
Message-ID: 958993320901150326t482bb0c7t3979d1ebe5de2b8@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Conrado Blasetti 2009-01-15 11:32:31 RE: Llamar a procedimiento el pgsql
Previous Message Calabaza 2009-01-15 11:18:08 OT - abrir archivo ERWin en Debian