que he probado las herramientas enumeradas here, algunos con más éxito que otros, pero ninguno me dio una sintaxis válida postgres que podría utilizar (errores TINYINT etc.)¿Hay una herramienta simple para convertir mysql en sintaxis postgresql?
Respuesta
Hay una opción mysqldump
lo que hace el código de PostgreSQL de salida:
mysqldump --compatible=postgresql ...
Parece que no funciona en absoluto ... – mgol
La documentación dice que la salida es solo " más compatible ". http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_compatible – djjeck
Como dice @m_gol, no funciona. Genera un archivo sql, pero no se puede importar a pg. – Oleander
Tenga una mirada en PG Foundry, utilidades extra para Postgres tienden a vivir allí. Sin embargo, creo que la herramienta que estás buscando existe.
Hay algunos proyectos allí, pero no pude encontrar uno que funcione – djjeck
es muy probable que nunca obtenga una herramienta para tal tarea que haría todo su trabajo por usted. prepárese para hacer un trabajo de refactorización usted mismo.
Hay una pieza de software de pagos que figuran en esta página PostgreSQL: http://www.postgresql.org/download/products/1
y esto está en pgFoundry: http://pgfoundry.org/projects/mysql2pgsql/
Después de un tiempo en Google encontré this post.
- Instalar la gema mysql2psql utilizando
[sudo] gem install mysql2psql
. - Crea un archivo de configuración ejecutando
mysql2psql
. Verá un error, pero debería haberse creado un archivomysql2psql.yml
. - Editar
mysql2psql.yml
- Run
mysql2psql
de nuevo para migrar los datos.
Consejo: Ajuste force_truncate
a true
en su archivo de configuración mysql2psql.yml
si desea que la base de datos PostgreSQL que se solucione antes de migrar los datos.
Lo usé y funcionó bien para mí. "mysqldump --compatible = postgresql" (de la respuesta de vog) tiene demasiados problemas para ser útil. –
He usado py-mysql2pgsql. Después de la instalación sólo necesita fichero de configuración sencilla en formato yml (origen, destino), por ejemplo .:
# if a socket is specified we will use that
# if tcp is chosen you can use compression
mysql:
hostname: localhost
port: 3306
socket: /tmp/mysql.sock
username: mysql2psql
password:
database: mysql2psql_test
compress: false
destination:
# if file is given, output goes to file, else postgres
file:
postgres:
hostname: localhost
port: 5432
username: mysql2psql
password:
database: mysql2psql_test
Uso:
> py-mysql2pgsql -h
usage: py-mysql2pgsql [-h] [-v] [-f FILE]
Tool for migrating/converting data from mysql to postgresql.
optional arguments:
-h, --help show this help message and exit
-v, --verbose Show progress of data migration.
-f FILE, --file FILE Location of configuration file (default:
mysql2pgsql.yml). If none exists at that path,
one will be created for you.
Más en su página principal https://github.com/philipsoutham/py-mysql2pgsql.
This page enumera las diferencias de sintaxis, pero un convertidor de consultas de trabajo simple no he encontrado todavía. Usar un paquete ORM en lugar de SQL sin formato podría evitar estos problemas.
estoy actualmente la piratería hasta un convertidor para una base de código legado:
function mysql2pgsql($mysql){
return preg_replace("/limit (\d+), *(\d+)/i", "limit $1 offset $2", preg_replace("/as '([^']+)'/i", 'as "$1"', $mysql)); // Note: limit needs order
}
Para CREATE
declaraciones, SQLines convierte la mayor parte de ellos en línea. Sin embargo, tuve que editar el mysqldump después:
"mediumtext" -> "text", "^LOCK.*" -> "", "^UNLOCK.*" -> "", "`" -> '"', "'" -> "''" in 'data', "0000-00-00" -> "2000-01-01", deduplicate constraint names, " CHARACTER SET utf8 " -> " ".
"int(10)" -> "int" was missed in the last table, so pass that part of the mysqldump through http://www.sqlines.com/online again.
¡Prueba este, funciona como el encanto!
http://www.sqlines.com/online
Um. Cero efecto. No cambió nada en la consulta SQL, y la consulta tenía un "left (" en él. Eso debería haberse convertido en una "subcadena (". – TheSatinKnight
- 1. ¿Herramienta para convertir expresiones regulares entre diferentes sintaxis de lenguaje?
- 2. ¿Hay alguna herramienta para convertir Managed C++ a C++/CLI?
- 3. ¿Hay un comando MySQL para convertir una cadena en minúsculas?
- 4. ¿Deberíamos convertir a PostgreSQL de MySQL?
- 5. ¿Hay alguna herramienta ORM para Haskell?
- 6. Convertir la selección de MySQL a PostgreSQL
- 7. ¿Herramienta simple para aprender XQuery?
- 8. ¿Hay alguna herramienta para convertir VML heredado a SVG?
- 9. Buscando una herramienta de GUI gratuita para trabajar con PostgreSQL
- 10. Para un principiante, ¿hay mucha diferencia entre MySQL y PostgreSQL?
- 11. ¿Hay un comando simple para convertir una rama en una etiqueta?
- 12. Sintaxis simple para probar Errores de validación
- 13. MySQL Comodín para "=" - ¿hay una
- 14. Herramienta para convertir (traducir) C para ir?
- 15. ¿Hay PHP mysql_real_escape_string para postgresql?
- 16. PostgreSQL "SI" error de sintaxis
- 17. Herramienta para convertir ASP a PHP
- 18. ¿Hay alguna sintaxis de escape para la variable psql dentro de las funciones de PostgreSQL?
- 19. ¿Convertir el archivo de volcado PostgreSQL a MySQL?
- 20. Date_trunc de PostgreSQL en mySQL
- 21. Algoritmo/Herramienta para convertir pMathML a cMathML?
- 22. ¿Hay alguna herramienta para convertir código fuente c/C++ a html?
- 23. mejora del algoritmo en una simple consulta PostgreSQL mirando
- 24. ¿Hay alguna herramienta para convertir el descuento en texto Wiki en otros formatos?
- 25. ¿Una herramienta para convertir JSON a C struct?
- 26. ¿Hay una herramienta de GUI para MySQL con la característica de generador de consultas?
- 27. ¿Hay alguna herramienta para generar una base de datos completa DDL para SQL Server? ¿Qué pasa con Postgres y MySQL?
- 28. Una herramienta para convertir el código de MATLAB a Python
- 29. ¿Algo parecido a MySQL Proxy para PostgreSQL?
- 30. ¿Existe una manera simple de convertir datos MySQL en Title Case?
posible duplicado de [¿Hay una herramienta oficial para portar una base de datos MySQL a PostgreSQL?] (Http://stackoverflow.com/questions/8371991/is-there-an-official-tool-for-porting -a-mysql-database-to-postgresql) –