Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo migrar la base de datos postgresql al foro mysql-CSDN

Cómo migrar la base de datos postgresql al foro mysql-CSDN

Migrar la base de datos MySQL a PostgreSQL

Revisé mucha información y probé algo. El método final adoptado es el siguiente:

1. definición (Sin datos)

mysqldump --no-data [dbname] >dbdef.sql

2 Utilice mysql2postgres para convertir el script a pgsql

3. Es posible que el script generado anteriormente aún no sea perfecto, puede intentar importar pgsql, depurar errores y modificarlos manualmente. Solo encontré un problema. El relleno cero en la definición de la columna MySQL debe eliminarse manualmente. Algunas definiciones no registradas generarán restricciones, que pueden eliminarse si no son necesarias. Además, los disparadores tienen problemas y solo se pueden reconstruir manualmente más adelante

4. Exportar datos de mysql:

mysqldump -v -nt --complete-insert=TRUE --compact -- no -create-info --skip-quote-names [dbname] >dbdata.sql

Si las versiones anteriores de pgsql no admiten la inserción por lotes, debe agregar --extended-insert=FALSE. rendimiento Las pérdidas son enormes.

5. Carácter de escape

El '\' en la cadena predeterminada de mysql es un carácter de escape, pero pgsql no lo utiliza de manera predeterminada. Modifique postgresql.conf:

backslash_quote = on

escape_string_warning = off

standard_conforming_strings = off

Puedes volver a cambiarlo al valor predeterminado una vez completada la importación de datos.

5. Importar definiciones de tablas y datos a pgsql

psql -d [dbname]

psql -d [dbname]

6. Activador de reconstrucción

7. Procesamiento de clave primaria (campo) autoincrementada

Dado que este campo tiene un valor al importar datos, también en pgsql. seq no aumentará. Puede utilizar la siguiente declaración para establecer el valor actual de la columna de incremento automático:

SELECT setval('sample_id_seq',max(id)) from sample;