¿Existe alguna herramienta de línea de comandos para convertir la base de datos MySQL a PostgreSQL? También me gustaría saber si hay una manera de convertir la base de datos usando el mysqldump
comando normal .
¿Existe alguna herramienta de línea de comandos para convertir la base de datos MySQL a PostgreSQL? También me gustaría saber si hay una manera de convertir la base de datos usando el mysqldump
comando normal .
Respuestas:
has probado:
mysqldump --compatible=postgresql dbname > export.sql
entonces haz esto para escapar de las comillas
sed "s/\\\'/\'\'/g" export.sql > export1.sql
Es posible que necesite más masajes, así que mire mysqldump doco más de cerca.
mysqldump
todavía. syntax error at or near "(" LINE 2: "id" int(10) NOT NULL,
Aquí hay algunas herramientas de código abierto que pueden ser muy útiles:
FromMySqlToPostgreSql
es una herramienta de alcance de funciones y muy fácil de usar.
Mapea tipos de datos, migra restricciones, índices, PK y FK exactamente como estaban en su base de datos MySQL.
Bajo el capó, utiliza COPIA PostgreSQL, por lo que la transferencia de datos es muy rápida.
FromMySqlToPostgreSql escrito en PHP (> = 5.4).
pgloader es una herramienta de carga de datos para PostgreSQL, que usa el comando COPY. Su principal ventaja sobre solo usar
COPY
o \copy
, y sobre el uso de un contenedor de datos extranjeros, es su comportamiento de transacción, donde pgloader mantendrá un archivo separado de datos rechazados, pero continuará tratando de copiar buenos datos en su base de datos. El comportamiento predeterminado de PostgreSQL es transaccional, lo que significa que cualquier línea errónea en los datos de entrada (archivo o base de datos remota) detendrá toda la carga masiva de la tabla. pgloader también implementa el reformateo de datos, un ejemplo típico de eso es la transformación de MySQL datestamps 0000-00-00 y 0000-00-00 00:00:00 a PostgreSQLNULL
valor (porque nuestro calendario nunca tuvo un año cero).
En realidad, existe una herramienta de migración gratuita que es bastante fácil de usar, desarrollada por EnterpriseDB. Se puede instalar a través de StackBuilder: Migration Toolkit
Recientemente utilicé una herramienta no gratuita de DBConvert para convertir una base de datos de acceso a postgres, y encontré que valía la pena el dinero en comparación con la cantidad de tiempo que perdí tratando de hacerlo de forma confiable de forma gratuita. Vender una herramienta similar para MySQL <-> postgres , que no he usado, pero que vale la pena considerar a menos que solo esté interesado en las herramientas de línea de comandos.
En caso de que se pregunte, no estoy afiliado a ellos de ninguna manera :-)
Puede utilizar el Asistente de migración EnterpriseDB, por ejemplo.
Puede migrar Symply OracleDB. Pero para Mysql, tiene algunas limitaciones, por ejemplo, no admite vistas, disparadores, procedimientos almacenados.
Para obtener más información, consulte Kit de herramientas de migración de EDB . No estoy seguro, pero puede ser posible migrar mysql-> oracle-> postgresql guardando sus procedimientos almacenados (en caso de que existan).
Grep this: herramientas de migración de bases de datos y SQL
Esto es solo para agregar a las respuestas existentes, lo que me ayudó a encontrar esta solución. Solía FromMySqlToPostgreSql . Todo lo que necesita hacer es descargar y extraer FromMySqlToPostgreSql , hacer una copia del archivo de configuración de muestra, establecer los valores de conexión db y ejecutar el archivo de índice con el siguiente comando:
php index.php config.xml
Simple pero efectivo!
Hay una herramienta de código abierto que proporciona funcionalidades para convertir una base de datos MySQL en Postgresql db, incluidos índices, fks y datos.
https://github.com/ggarri/mysql2psql
Esta herramienta también permite definir cambios de esquema para que pueda realizar algunas actualizaciones a su esquema actual en tiempo de ejecución.