FAQ

[PostgreSQL-ES] MIgracion de SQL server a Postgresql

Ruben avila galindo
Feb 24, 2009 at 8:27 pm
Hola q tal tengo 100 tablas y Store procedure en SQL SERVER 2000 quiciera migrar todo a Postgresql hay alguna herramienta para dicho proceso.





Gracias por su atencion.





Saludos,

Ruben Avila g.

Peru

_________________________________________________________________
Descubre cómo compartir tus fotos con Windows Live. ¡Pruébalo ya!
http://home.live.com/
reply

Search Discussions

12 responses

  • Moises Alberto Lindo Gutarra at Feb 24, 2009 at 9:32 pm

    2009/2/24 ruben avila galindo <ruben2218@hotmail.com>:
    Hola q tal tengo 100 tablas y Store procedure en SQL SERVER 2000 quiciera
    migrar todo a Postgresql hay alguna herramienta para dicho proceso.


    Gracias por su atencion.


    Saludos,
    Ruben Avila g.
    Peru

    ________________________________
    El doble de diversión: Con Windows Live Messenger comparte fotos mientras
    hablas.
    Para migrar tablas y datos existen varias utilitarios en la red muy buenos como:

    http://edoceo.com/creo/ms2pg

    http://sourceforge.net/projects/mssql2pgsql

    pero no se nada sobre sw para migrar SP por lo menos libre no.

    --
    Atentamente,
    Moisés Alberto Lindo Gutarra
    Asesor - Desarrollador Java / Open Source
    Linux Registered User #431131 - http://counter.li.org/
    Cel: (511) 995081720
    MSN: mlindo@tumisolutions.com
  • Marcos Ortiz Valmaseda at Feb 25, 2009 at 4:38 am
    Generalmente se deben reescribir para hacerlos compatibles con PostgreSQL pero las herramientas que mencionaste aceleran mucho el proceso.
    Ruben, puedes buscar en la wiki del proyecto que hay un tema dedicado a esto.

    Saludos

    ----- Mensaje original -----
    De: "Moises Alberto Lindo Gutarra" <mlindo@gmail.com>
    Para: "comunidad postgresql" <pgsql-es-ayuda@postgresql.org>
    Enviados: Martes, 24 de Febrero de 2009 16:32:29 (GMT-0500) Auto-Detected
    Asunto: Re: [pgsql-es-ayuda] MIgracion de SQL server a Postgresql

    2009/2/24 ruben avila galindo <ruben2218@hotmail.com>:
    Hola q tal tengo 100 tablas y Store procedure en SQL SERVER 2000 quiciera
    migrar todo a Postgresql hay alguna herramienta para dicho proceso.


    Gracias por su atencion.


    Saludos,
    Ruben Avila g.
    Peru

    ________________________________
    El doble de diversión: Con Windows Live Messenger comparte fotos mientras
    hablas.
    Para migrar tablas y datos existen varias utilitarios en la red muy buenos como:

    http://edoceo.com/creo/ms2pg

    http://sourceforge.net/projects/mssql2pgsql

    pero no se nada sobre sw para migrar SP por lo menos libre no.

    --
    Atentamente,
    Moisés Alberto Lindo Gutarra
    Asesor - Desarrollador Java / Open Source
    Linux Registered User #431131 - http://counter.li.org/
    Cel: (511) 995081720
    MSN: mlindo@tumisolutions.com
    --
    TIP 1: para suscribirte y desuscribirte, visita http://archives.postgresql.org/pgsql-es-ayuda


    --

    ¨¨Tip 9 : Vacumm es tu amigo.......¨¨¨
    Marcos Ortíz Valmaseda
    Linux User # 418229
    PostgreSQL 8.3.5 && Debian GNU/Linux Experimental User
  • Jaime Casanova at Feb 25, 2009 at 5:17 pm

    On Wed, Feb 25, 2009 at 12:09 PM, Jaime Casanova wrote:
    On Tue, Feb 24, 2009 at 3:27 PM, ruben avila galindo
    wrote:
    Hola q tal tengo 100 tablas y Store procedure en SQL SERVER 2000 quiciera
    migrar todo a Postgresql hay alguna herramienta para dicho proceso.
    Saludos,

    Actualmente estoy haciendo eso, te cuento los pasos que estoy
    siguiendo (lo que describo es el proceso final de migracion y no el
    arduo trabajo intermedio):
    sobre los SP, lamento decirte que te tocara a mano...

    algunos tips:
    1) en gvim puedes ejecutar
    :0s/@/v_/g10000
    para cambiar esa arroba fea al inicio de los parametros por algo mas decente


    2) si las funciones son simples (por ejemplo en esta base hay
    funciones del tipo
    if opcion = 1 begin
    select

    if opcion = 2 begin
    select


    es mas facil migrarlo, solo creas una funcion con tantos parametros
    out como tenga tu funcion (estoy asumiendo que todos los selects
    devuelven el mismo numero de parametros no se si mssql te permite
    tamania boberia) y le dices que retorne RETUTNS SETOF record... y en
    el if en vez de solo el select pones RETURN QUERY select...


    el resto es solo tenerle paciencia... aun estoy en eso...

    --
    Atentamente,
    Jaime Casanova
    Soporte y capacitación de PostgreSQL
    Asesoría y desarrollo de sistemas
    Guayaquil - Ecuador
    Cel. +59387171157
  • Jaime Casanova at Feb 25, 2009 at 5:23 pm

    On Wed, Feb 25, 2009 at 12:09 PM, Jaime Casanova wrote:
    On Tue, Feb 24, 2009 at 3:27 PM, ruben avila galindo
    wrote:
    Hola q tal tengo 100 tablas y Store procedure en SQL SERVER 2000 quiciera
    migrar todo a Postgresql hay alguna herramienta para dicho proceso.
    Saludos,

    Actualmente estoy haciendo eso, te cuento los pasos que estoy
    siguiendo (lo que describo es el proceso final de migracion y no el
    arduo trabajo intermedio):

    Requisito.- postgres 8.3 (parchado para que acepte la clausula AS para
    dar alias a las columnas del SELECT; parche adjunto) o superior (desde
    8.4 no sera necesario hacer eso)
    esto solo es util si ya tienes una aplicacion y no quieres modificar
    todas las consultas (OjO que aun hay un monton de cosas que modificar
    por ejemplo cambiar TOP por LIMIT, y las llamadas a funciones de EXEC
    a SELECT's) pero estoy convencido que eso es lo mas problematico...

    ademas solo vale la pena porque en el 8.4 ya no tendras que parchar
    postgres sino te diria que modifiques los selects de la aplicacion

    --
    Atentamente,
    Jaime Casanova
    Soporte y capacitación de PostgreSQL
    Asesoría y desarrollo de sistemas
    Guayaquil - Ecuador
    Cel. +59387171157
  • Jaime Casanova at Feb 25, 2009 at 5:39 pm
    cc: a la lista

    2009/2/25 ruben avila galindo <ruben2218@hotmail.com>:
    ahorita mi preocupacion es primero es pasar las estructuras y la DATA y
    despues empezar con los STORE ahora yo hize directo con el DTS de SQL SERVER
    y paso las estrucuras pero no la data y los PK y FK  con 8.4 ya esta
    operativo para bajarlo
    esta bien, luego debes cambiar los nombres de mayusculas a minusculas
    (mira el listado de pasos que pase), el DTS te da la opcion de pasar
    la DATA... los PK y FK como te dije antes debes hacerlo aparte en un
    script basandote en el que genera el mismo mssql... no es nada de
    copiar y pegar es un trabajo arduo y tedioso pero no dificil...

    8.4 aun no esta disponible, yo uso una version de desarrollo (en mi
    laptop, obvio, ni loco en produccion)... se espera que salga para
    abril (imagino que haran el anuncio el dia de los inocentes ;)

    --
    Atentamente,
    Jaime Casanova
    Soporte y capacitación de PostgreSQL
    Asesoría y desarrollo de sistemas
    Guayaquil - Ecuador
    Cel. +59387171157
  • Silvio Quadri at Feb 25, 2009 at 6:40 pm

    2009/2/25 Jaime Casanova <jcasanov@systemguards.com.ec>:
    cc: a la lista

    2009/2/25 ruben avila galindo <ruben2218@hotmail.com>:
    ahorita mi preocupacion es primero es pasar las estructuras y la DATA y
    despues empezar con los STORE ahora yo hize directo con el DTS de SQL SERVER
    y paso las estrucuras pero no la data y los PK y FK  con 8.4 ya esta
    operativo para bajarlo
    esta bien, luego debes cambiar los nombres de mayusculas a minusculas
    (mira el listado de pasos que pase), el DTS te da la opcion de pasar
    la DATA... los PK y FK como te dije antes debes hacerlo aparte en un
    script basandote en el que genera el mismo mssql... no es nada de
    copiar y pegar es un trabajo arduo y tedioso pero no dificil...

    8.4 aun no esta disponible, yo uso una version de desarrollo (en mi
    laptop, obvio, ni loco en produccion)... se espera que salga para
    abril (imagino que haran el anuncio el dia de los inocentes ;)
    De todas formas, el principal problema no está con el cambio de
    sintaxis, los arroba y todo eso, sino que en SQL Server se puede
    abusar de las tablas temporales, mientras que en PostgreSQL eso no es
    tan sencillo.
    Ahí no alcanza con cambiar los selects ... hay que reprogramar.

    Silvio
  • Edwin Quijada at Feb 25, 2009 at 7:25 pm
    Habria que ver como se programo tambien esos SP. La gente que viene de MSSQL acostumbra mucho a ligar Transact con el SQL porque este lo permite y Postgres no. Asi , que segun yo este es el trabajo mas pesado.

    Hace un par de meses cambie un SQL 2000 por Postgres y el trabajo no fue tan duro porque no habia muchos SP no invente y los reescribe todos. Como 200 pero eran faciles pero la liga del Transact con SQL fue lo que lo hizo mas dificil.


    *-------------------------------------------------------*
    *-Edwin Quijada
    *-Developer DataBase
    *-JQ Microsistemas
    *-809-849-8087
    * " Si deseas lograr cosas excepcionales debes de hacer cosas fuera de lo comun"
    *-------------------------------------------------------*





    _________________________________________________________________
    Windows Live Hotmail now works up to 70% faster.
    http://windowslive.com/Explore/Hotmail?ocid=TXT_TAGLM_WL_hotmail_acq_faster_112008
  • Ruben avila galindo at Feb 25, 2009 at 7:50 pm
    Claro yo estoy en esta empresa recien y he visto la peculiaridad q ellos quieren cambiarse a BD libres y aposte con POSTGRESQL porque tengo tiempo trabajando con esto pero no he tenido experiencias en Migrar TABLAS y estructuras

    quiicera empezar con las TABLAS y la DATa y claro esta los PK y FKpor ahi y de ahi viendo los stores hice un intento con el DTS de SQL SERVER pero solo paso la TABLAS mas no la data ni los PK y FK cual seria la forma correcta para hacer esto

    ya q los store la mas compleja q veo son el uso de IF y BEGIN los demas son asi nomas.



    create procedure Sp_Cliente

    as

    Select * from cliennte where fec_n1='12/01/2009'








    From: listas_quijada@hotmail.com
    To: silvioq@gmail.com; jcasanov@systemguards.com.ec
    CC: ruben2218@hotmail.com; pgsql-es-ayuda@postgresql.org
    Subject: RE: [pgsql-es-ayuda] MIgracion de SQL server a Postgresql
    Date: Wed, 25 Feb 2009 19:25:23 +0000




    Habria que ver como se programo tambien esos SP. La gente que viene de MSSQL acostumbra mucho a ligar Transact con el SQL porque este lo permite y Postgres no. Asi , que segun yo este es el trabajo mas pesado.
    Hace un par de meses cambie un SQL 2000 por Postgres y el trabajo no fue tan duro porque no habia muchos SP no invente y los reescribe todos. Como 200 pero eran faciles pero la liga del Transact con SQL fue lo que lo hizo mas dificil.

    *-------------------------------------------------------*
    *-Edwin Quijada
    *-Developer DataBase
    *-JQ Microsistemas
    *-809-849-8087
    * " Si deseas lograr cosas excepcionales debes de hacer cosas fuera de lo comun"
    *-------------------------------------------------------*







    Windows Live Hotmail now works up to 70% faster. Sign up today.
    _________________________________________________________________
    Anímate y disfruta con los mejores juegos de Messenger, ¡descúbrelos!
    http://www.vivelive.com/juegos/
  • Edwin Quijada at Feb 25, 2009 at 7:22 pm

    Requisito.- postgres 8.3 (parchado para que acepte la clausula AS para
    dar alias a las columnas del SELECT; parche adjunto) o superior (desde
    8.4 no sera necesario hacer eso)

    Hoy estoymas bruto o no entiendo nada. jaime, a cual parche es qye te refieres para los alias. Puedes explicarme, porque no entiedno no es hacer select field1 AS f1, field2 AS f2 FROM foo;

    El parche es para permitir esto?

    Por que siempre lo he hecho y nunca he tenido qe parchear a Postgres. Asi que clarifiquenme , please.




    *-------------------------------------------------------*
    *-Edwin Quijada
    *-Developer DataBase
    *-JQ Microsistemas
    *-809-849-8087
    * " Si deseas lograr cosas excepcionales debes de hacer cosas fuera de lo comun"
    *-------------------------------------------------------*



    _________________________________________________________________
    Get 5 GB of storage with Windows Live Hotmail.
    http://windowslive.com/Explore/Hotmail?ocid=TXT_TAGLM_WL_hotmail_acq_5gb_112008
  • Jaime Casanova at Mar 5, 2009 at 6:16 pm
    Disculpen el top-posting, pero tengo la ligera impresion de que este
    mail nunca llego a la lista y es justo el que contenia los archivos.

    Alvaro: tu sabes cual es el limite en el tamaño de los archivos que se
    pueden enviar a la lista?

    On Wed, Feb 25, 2009 at 12:09 PM, Jaime Casanova
    wrote:
    On Tue, Feb 24, 2009 at 3:27 PM, ruben avila galindo
    wrote:
    Hola q tal tengo 100 tablas y Store procedure en SQL SERVER 2000 quiciera
    migrar todo a Postgresql hay alguna herramienta para dicho proceso.
    Saludos,

    Actualmente estoy haciendo eso, te cuento los pasos que estoy
    siguiendo (lo que describo es el proceso final de migracion y no el
    arduo trabajo intermedio):

    Requisito.- postgres 8.3 (parchado para que acepte la clausula AS para
    dar alias a las columnas del SELECT; parche adjunto) o superior (desde
    8.4 no sera necesario hacer eso)

    1) creo una base en postgres (encoding utf-8) con el mismo nombre de
    la base de mssql
    2) ALTER ROLE sa LOGIN; (esto solo es necesario si se ha estado usando
    este usuario para la conexion del odbc, por aquello de no cambiar
    todas las conexiones en la aplicacion)
    3) creo el odbc respectivo con las siguientes opciones:
    3.1) configurar para que ejecute automaticamente SET client_encoding
    TO 'latin1';
    3.2) quitar el check de bool as char
    4) Ejecutar el script mscompat.sql (adjunto, basado en el script
    mscompat.sql que viene en el proyecto
    http://pgfoundry.org/projects/mstopsql; se cambiaron algunas funciones
    de plpgsql a sql y se agregaron unas cuantas mas)
    5) Crear un schema con el mismo nombre de la base
    6) Migrar los datos a traves del Servicio de Transformacion de Datos de MSSQL
    7) Ejecutar el script rename_tables.sql: este genera 2 scripts que
    cambiara el nombre de las tablas y las columnas a minusculas)
    8) Ejecutar ALTER DATABASE $nombre_base SET search_path TO
    $nombre_base, mscompat, pg_catalog
    9) finalmente tengo un script que se genero originalmente desde mssql,
    en este script puse que genere los create table, create view, indices
    y restricciones (PK, FK, CHECK, etc) y lo modifique para que en vez
    del create table ejecute un alter table para agregar los default,
    revisa la sintaxis de los indices y las vistas... ademas en mi caso
    estoy cambiando todos los float y double precision por numeric


    --
    Atentamente,
    Jaime Casanova
    Soporte y capacitación de PostgreSQL
    Asesoría y desarrollo de sistemas
    Guayaquil - Ecuador
    Cel. +59387171157


    --
    Atentamente,
    Jaime Casanova
    Soporte y capacitación de PostgreSQL
    Asesoría y desarrollo de sistemas
    Guayaquil - Ecuador
    Cel. +59387171157
  • Alvaro Herrera at Mar 5, 2009 at 6:39 pm

    Jaime Casanova escribió:

    Alvaro: tu sabes cual es el limite en el tamaño de los archivos que se
    pueden enviar a la lista?
    30 kB es el limite despues del cual se van a moderacion. Si yo hubiera
    recibido este mensaje para moderacion lo habría aprobado. (No me
    acuerdo si lo recibí o no). Es posible que haya quedado atascado en el
    filtro antispam.




    --
    Alvaro Herrera http://www.flickr.com/photos/alvherre/
    "La primera ley de las demostraciones en vivo es: no trate de usar el sistema.
    Escriba un guión que no toque nada para no causar daños." (Jakob Nielsen)
  • Ruben avila galindo at Mar 5, 2009 at 7:56 pm
    Esto me ha mandado la amiga karen no lo he probado a ver si lo prueban para ver si funciona y si es q la version de prueba q dan funciona espero q responda nuestra amiga.



    Saludos,



    Ruben Avila G

    Analista de Sistemas

    Perú





    Saludos

    Bueno sobre la migracion te puedo decir que el programa SQLWays permite pasar las tablas y la data
    tambien hace la parte de migracion de los stores, y triggers de sql server a postgresql

    Pero igual la parte de los stores que te devuelven conjunto de registro lo genera como cursores a esa consultas.

    Bueno eso te ayuda en cierta manera para la sintaxis de postgresql pero para los select tambien lo puedes trabajar con tipos..


    ...

    Karen..





    Date: Thu, 5 Mar 2009 15:38:55 -0300
    From: alvherre@alvh.no-ip.org
    To: jcasanov@systemguards.com.ec
    CC: ruben2218@hotmail.com; pgsql-es-ayuda@postgresql.org
    Subject: Re: [pgsql-es-ayuda] MIgracion de SQL server a Postgresql

    Jaime Casanova escribió:
    Alvaro: tu sabes cual es el limite en el tamaño de los archivos que se
    pueden enviar a la lista?
    30 kB es el limite despues del cual se van a moderacion. Si yo hubiera
    recibido este mensaje para moderacion lo habría aprobado. (No me
    acuerdo si lo recibí o no). Es posible que haya quedado atascado en el
    filtro antispam.




    --
    Alvaro Herrera http://www.flickr.com/photos/alvherre/
    "La primera ley de las demostraciones en vivo es: no trate de usar el sistema.
    Escriba un guión que no toque nada para no causar daños." (Jakob Nielsen)
    _________________________________________________________________
    Nuevo Windows Live, un mundo lleno de posibilidades. Descúbrelo.
    http://www.microsoft.com/windows/windowslive/default.aspx

Related Discussions