tiny - ¿Cuál es la mejor manera de convertir una base de datos mysql a sqlite?
tiny sql database (4)
Actualmente tengo una base de datos MySQL relativamente pequeña (4 o 5 tablas, 5000 filas) que me gustaría convertir a una base de datos sqlite. Como potencialmente tendría que hacer esto más de una vez, agradecería que alguien pudiera recomendarme cualquier herramienta útil, o al menos cualquier método fácil de replicar.
(Tengo acceso de administrador completo a la base de datos / máquinas involucradas.)
Si solo se trata de unas pocas tablas, es probable que pueda crear una secuencia de comandos en el idioma de scripting que prefiera y tener todo listo para el momento en que tomará leer todas las respuestas o rastrear una herramienta adecuada. De cualquier forma. :)
Siempre que un archivo de volcado MySQL no exceda el lenguaje de consulta SQLite , debería poder migrar con bastante facilidad:
tgl@moto~$ mysqldump old-database > old-database-dump.sql
tgl@moto~$ sqlite3 -init old-database-dump.sql new-database
No lo he intentado yo mismo.
ACTUALIZAR:
Parece que deberás hacer un par de ediciones del volcado de MySQL. Usaría sed o Google para eso.
Solo la sintaxis del comentario, auto_increment y TYPE = declaration, y los caracteres de escape son diferentes.
He tenido que hacer cosas similares algunas veces. El enfoque más fácil para mí ha sido escribir un script que extraiga de una fuente de datos y produzca un resultado para la nueva fuente de datos. Simplemente realice una consulta SELECT *
para cada tabla en su base de datos actual, y luego vacíe todas las filas en una consulta INSERT INTO
para su nueva base de datos. Puede volcar esto en un archivo o canalizarlo directamente a la interfaz de la base de datos.
No es bonito, pero sinceramente, parece ser una gran preocupación para cosas como esta. Esta técnica es rápida de escribir, y funciona. Esos son mis principales criterios para cosas como esta.
También querrás consultar este hilo . Parece que un par de personas ya han reunido básicamente lo que necesitas. Sin embargo, no miré tan de cerca, así que no hay garantías.
Aquí hay una lista de convertidores:
Un método alternativo que funcionaría muy bien, pero que rara vez se menciona es: use una clase ORM que abstraiga las diferencias específicas de la base de datos para usted. por ejemplo, obtienes estos en PHP ( RedBean ), Python (capa ORM de Django, Storm , SqlAlchemy ), Ruby on Rails ( ActiveRecord ), Cocoa ( CoreData )es decir, podrías hacer esto:
- Cargue los datos de la base de datos de origen utilizando la clase ORM.
- Almacene los datos en la memoria o serialícelos en el disco.
- Almacene los datos en la base de datos de origen utilizando la clase ORM.