Convierte MySQL a SQlite

¿Es posible convertir de MySQL a SQLite con una herramienta gratuita en Windows?

Hay un script mysql2sqlite.sh en GitHub

Como se describe en el encabezado, el script se puede usar así:

./mysql2sqlite.sh myDbase | sqlite3 database.sqlite 

alternativas

Aquí hay una lista de convertidores:

El enlace ya no funciona, por lo que solo está disponible a través de una instantánea en archive.org , última actualización de 2011.


Un método alternativo que funcionaría incluso en Windows pero que rara vez se menciona es: use una clase ORM que abstraiga las diferencias de bases de datos específicas para usted. por ejemplo, obtienes estos en PHP ( RedBean ), Python (capa ORM de Django, Storm , SqlAlchemy ), Ruby on Rails ( ActiveRecord ), Cocoa ( CoreData ), etc.

es decir, podrías hacer esto:

  1. Cargue los datos de la base de datos de origen utilizando la clase ORM.
  2. Almacene los datos en la memoria o serialícelos en el disco.
  3. Almacene los datos en la base de datos de destino utilizando la clase ORM.

Sequel (Ruby ORM) tiene una herramienta de línea de comandos para tratar con las bases de datos, debes tener ruby ​​instalado, entonces:

  $ gem install sequel mysql2 sqlite3 $ sequel mysql2://user:password@host/database -C sqlite://db.sqlite 

No todos los esquemas DB se pueden convertir. MySQL es más complejo y rico en funciones que SQLite. Sin embargo, si su esquema es lo suficientemente simple, puede volcarlo en un archivo SQL e intentar importarlo / cargarlo en un DB SQLite.

Desde esta página web: http://osenxpsuite.net

descargar SQLite2009 Pro Enterprise Manager

Es gratis. Puede importar datos desde la base de datos Mysql. Acabo de convertir una base de datos de 17M. Es perfecto.

¡Encontré la solución perfecta! echa un vistazo: http://www.jbip.net/content/how-convert-mysql-sqlite

Primero, necesita este script (póngalo en un archivo llamado ‘mysql-to-sqlite.sh’):

 #!/bin/bash if [ "x$1" == "x" ]; then echo "Usage: $0 " exit fi cat $1 | grep -v ' KEY "' | grep -v ' UNIQUE KEY "' | grep -v ' PRIMARY KEY ' | sed '/^SET/d' | sed 's/ unsigned / /g' | sed 's/ auto_increment/ primary key autoincrement/g' | sed 's/ smallint([0-9]*) / integer /g' | sed 's/ tinyint([0-9]*) / integer /g' | sed 's/ int([0-9]*) / integer /g' | sed 's/ character set [^ ]* / /g' | sed 's/ enum([^)]*) / varchar(255) /g' | sed 's/ on update [^,]*//g' | sed 's/\\r\\n/\\n/g' | sed 's/\\"/"/g' | perl -e 'local $/;$_=<>;s/,\n\)/\n\)/gs;print "begin;\n";print;print "commit;\n"' | perl -pe ' if (/^(INSERT.+?)\(/) { $a=$1; s/\\'\''/'\'\''/g; s/\\n/\n/g; s/\),\(/\);\n$a\(/g; } ' > $1.sql cat $1.sql | sqlite3 $1.db > $1.err ERRORS=`cat $1.err | wc -l` if [ $ERRORS == 0 ]; then echo "Conversion completed without error. Output file: $1.db" rm $1.sql rm $1.err else echo "There were errors during conversion. Please review $1.err and $1.sql for details." fi 

Luego, vacíe una copia de su base de datos:

 you@prompt:~$ mysqldump -u root -p --compatible=ansi --skip-opt generator > dumpfile 

Y ahora, ejecute la conversión:

 you@prompt:~$ mysql-to-sqlite.sh dumpfile 

Y si todo va bien, ahora debería tener un dumpfile.db que se puede usar a través de sqlite3.

 you@prompt:~$ sqlite3 dumpfile.db SQLite version 3.6.10 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> .tables dg_cities dg_forms dg_surnames dg_counties dg_provinces dg_user_accounts dg_countries dg_provinces_netherlands dg_first_names dg_states 

Hay maneras diferentes de hacer esto. También tuve este problema y busqué mucho. Luego obtuve una forma simple de convertir MySql a Sqlite.

Siga estas instrucciones:

Paso 1 : Primero necesitas instalar el navegador SqliteDB (muy pequeño y rápido para ver tablas y datos)

Paso 2 : abra su archivo MySql en el Bloc de notas o sería genial si abre en Notepad ++

Paso 3 : elimine las primeras líneas adicionales que contengan información o consultas y guárdelo.

Paso 4 : abra Sqlite Db Brower, Crear base de datos, luego Tablas y los mismos tipos que en la Base de datos Mysql.

Paso 5 : en la barra de menú de Sqlite Db Browser Seleccione Archivo-> luego Importar archivo Mysql que guardó.

Se convertirá fácilmente en Sqlite After Warning Dialog.

Si hay un error, elimine más líneas adicionales si tiene su archivo Mysql.

También puede instalar Mysql en el software Sqlite Converter en versión de prueba. Pero la información que proporciono para la conversión es de por vida.

También puede consultar este tutorial para obtener más ayuda: https://www.youtube.com/watch?v=UcAHsm9iwpw

Espero que esto ayude.

Sqlite tiene oficialmente una lista de herramientas de conversión.

http://www2.sqlite.org/cvstrac/wiki?p=ConverterTools

Encontré este complemento para MySQL WorkBench:

http://www.henlich.de/software/sqlite-export-plugin-for-mysql-workbench/

Mi solución a este problema al ejecutar una Mac era

  1. Instale Ruby y secuela similar a la respuesta de Macario. Seguí este enlace para ayudar a configurar Ruby, mysql y sqlite3 Configuración de desarrollo de Ruby on Rails para Mac OSX
  2. Instalar secuela

     $ gem install sequel 

    Si todavía se requiere

     % gem install mysql sqlite3 

    luego usó la siguiente base de Sequel doc bin_sequel.rdoc (ver Copiar base de datos)

     sequel -C mysql://myUserName:myPassword@host/databaseName sqlite://myConvertedDatabaseName.sqlite 

Un usuario de Windows podría instalar Ruby y Sequel para una solución de Windows.

Si tiene experiencia, escriba scripts simples por Perl \ Python \ etc y convierta MySQL en SQLite. Lee datos de Mysql y escríbelos en SQLite.

Me gusta el SQLite2009 Pro Enterprise Manager sugerido por Jfly. Sin embargo:

  • El tipo de datos MySQL INT no se convierte al tipo de datos SQlite INTEGER (funciona con DBeaver)

  • No importa constantes de clave externa de MySQL (no pude encontrar ninguna herramienta que admita la transferencia de restricciones de clave externa de MySQL a SQlite).

De la lista de herramientas de conversión encontré Kexi . Es una herramienta de interfaz de usuario para importar desde varios servidores de bases de datos (incluido MySQL) a SQLite. Al importar alguna base de datos (digamos de MySQL), la almacena en formato Kexi. El formato Kexi es el formato SQLite ‘nativo’. Así que simplemente copie el archivo kexi y tenga sus datos en formato sqlite

Si se le ha proporcionado un archivo de base de datos y no ha instalado el servidor correcto (ya sea SQLite o MySQL), intente con esta herramienta: https://dbconvert.com/sqlite/mysql/ La versión de prueba permite convertir los primeros 50 registros de cada tabla , el rest de los datos tiene marca de agua. Este es un progtwig de Windows y puede volcar en un servidor de base de datos en ejecución o puede volcar el resultado a un archivo .sql

Probé varios métodos en este hilo, pero nada funcionó para mí. Así que aquí hay una nueva solución, que también me pareció muy simple:

  1. Instala RazorSQL . Funciona para Mac, Windows y Linux.
  2. En RazorSQL, conéctese a su base de datos, por ejemplo, en localhost. La conversión no funciona con los archivos de volcado sql.
  3. Haga clic derecho en su base de datos -> Conversión de base de datos -> seleccione SQLite. Esto guardará un archivo txt con todas las consultas sqlite necesarias para crear esta base de datos.
  4. Instale un administrador de bases de datos SQLite, como DB Browser for SQLite . Funciona en cualquier sistema operativo.
  5. Cree una base de datos vacía, vaya a la pestaña Ejecutar SQL y pegue el contenido del paso 3.

Eso es todo, ahora tienes tu base de datos SQLite.

Este es un convertidor simple: http://mysql2sqlite.felipemarques.com.br/ (el sitio está en portugués brasileño)