2009-10-22 26 views
8

Estoy investigando la posibilidad de migrar del servidor sql de Microsoft a postgresql y estoy buscando las mejores herramientas para hacer el trabajo.SQL Server to Postgres

Buscando específicamente una herramienta similar a MySQL Migration Toolkit, hice una prueba de migración de nuestras bases de datos a MySQL y tuve cada una de ellas en camino en menos de una hora.

Parece que pgAdmin hará la mayor parte de lo que estaba haciendo con Sql Server Management Studio y las tablas pg_stat serán lo suficientemente buenas para la optimización del rendimiento.

¿Cuáles son las otras herramientas clave que todo el mundo usa al desarrollar y trabajar con postgresql?

+1

le felicito por su decisión de alejarse de bloqueo ins proveedor propiciatorias. – LiraNuna

+3

Más que un alejamiento de las enormes tarifas de licencias de proveedores si podemos. – Lance

Respuesta

3

En la migración de PostgreSQL de una versión a otra, que no tenía herramientas para ello he utilizado sólo una herramienta, UNIX de sed.

Mi recomendación es simplemente exportar el sql. Limpie las excéntricas específicas del cliente de exportación (generalmente en comentarios), luego intente importarlas en una base de datos SQL y vea qué sucede. Los errores son tus pautas. Usa sed para ir a través del archivo mssql y da salida al archivo postgres sql corrigiendo los errores. Una vez que se encuentre en un entorno funcional, mire los datos en sí, algunas cosas pueden ser distintas a las esperadas. Después de las pruebas y una corrección adicional, está listo para comenzar.

+0

esto va a ser un poco doloroso en tablas con millones de registros pero factible, sólo puede terminar de escribir un pequeño script para conectarse a las bases de datos y mover los datos. – Lance

+0

Eso podría funcionar más suave. La cantidad de ediciones que tienes que hacer con Sed no es demasiado. Las líneas son difíciles de crear a veces como expresiones regulares. Pero básicamente estás resolviendo un TIPO de problema a la vez, en lugar de resolver uno por uno. Ojalá tuviera el guión que escribí, lo publicaría como ejemplo. Si eres un gurú de la expresión reg, es bastante fácil. Buena suerte :) –

2

Estoy de acuerdo con Chisum. Exportaría los datos de MSSQL como un script SQL (o un subconjunto si es enorme, tal vez una tabla a la vez o rangos más pequeños); e intente ejecutarlo contra postgres; y mira lo que pasa. Puede que tenga que escribir un guión sed o pequeño si hay gnarlies para que funcione correctamente, pero no esperaría que fuera ridículo.

Importe los datos en postgres y vea qué ocurre. Es probable que se encuentre con más problemas con la estructura de la tabla, los índices y las referencias que con otras cosas.

Theres algo de información en el sitio web de Postgres aquí: http://wiki.postgresql.org/wiki/Converting_from_other_Databases_to_PostgreSQL#Microsoft_SQL_Server

0

Depende de qué es exactamente lo que necesita para convertir de SQL Server para PostgreSQL. Si solo está hablando sobre DDL y el proceso de conversión de datos, puede intentar exportar todo con SQL Server Management Studio como se sugiere, intente ejecutar este script en la base de datos PostgreSQL mediante PGAdmin o la utilidad psql e intente corregir los errores desencadenados durante el importar. Pero tenga en cuenta que, incluso en ese caso, puede haber problemas con la conversión de PALABRAS RESERVADAS, conversión de IDENTIDAD, conversión de columnas calculadas, conversión de datos multilingües, conversión de índices agrupados y otros. No estoy seguro de si REGEXP puede ayudarlo a resolver los problemas relacionados con la conversión de estas características.

Si habla de la conversión de objetos de Business Logics, como desencadenadores, SP, UDF, habrá muchos más problemas en el proceso de conversión global incluso utilizando las utilidades gratuitas existentes que realiza la migración del servidor SQL a PostgreSQL bases de datos, porque la sintaxis y las técnicas para especificar y mantener esta u otra operación en ambas bases de datos son realmente diferentes.Incluso si usted es un verdadero gurú en REGEXP en tal caso, habrá muy difícil de automatizar el cambio de código o código re-factoring en apoyo de detalles de la base de datos fuente. Las características más comunes son: funciones incorporadas, consultas jerárquicas, procesamiento de errores, el procesamiento de transacciones, conjuntos de resultados que regresan y procesamiento, Dynamic-SQL, triggers comunicado conversión y muchos otros.

Así, en función de sus necesidades, puede utilizar la conexión de soluciones de carga, que en la mayoría de los casos requieren esfuerzos manuales significativos adicionales en el proceso de conversión.

0

Liquibase puede ayudarle a convertir el esquema de MS SQL a un esquema específico de PostgreSQL. (Se requieren pocas intervenciones manuales pero es bastante útil) Para migrar los datos, puede exportar el servidor SQL a csv e importarlo a postgresql.