Converter MySQL para SQlite

É possível converter do MySQL para o SQLite com uma ferramenta gratuita no Windows?

Existe um script mysql2sqlite.sh no GitHub

Conforme descrito no header, o script pode ser usado assim:

./mysql2sqlite.sh myDbase | sqlite3 database.sqlite 

alternativas

Aqui está uma lista de conversores:

O link parece estar desativado agora, portanto, ele está disponível apenas por meio de um instantâneo no archive.org , atualizado pela última vez em 2011.


Um método alternativo que funcionaria mesmo em janelas, mas raramente é mencionado, é: use uma class ORM que abstraia as diferenças específicas de database para você. por exemplo, você obtém estes em PHP ( RedBean ), Python (camada ORM do Django, Storm , SqlAlchemy ), Ruby on Rails ( ActiveRecord ), cocoa ( CoreData ) etc.

ou seja, você poderia fazer isso:

  1. Carregar dados do database de origem usando a class ORM.
  2. Armazene dados na memory ou serialize para o disco.
  3. Armazene dados no database de destino usando a class ORM.

Sequel (Ruby ORM) possui uma ferramenta de linha de comando para lidar com bancos de dados, você deve ter o ruby ​​instalado, então:

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

Nem todo esquema de database pode ser convertido. O MySQL é mais complexo e rico em resources que o SQLite. No entanto, se o esquema for simples o suficiente, você poderá despejá-lo em um arquivo SQL e tentar importá-lo / carregá-lo em um database SQLite.

A partir desta página: http://osenxpsuite.net

baixar SQLite2009 Pro Enterprise Manager

É de graça. Pode importar dados do database de Mysql. Acabei de converter um database 17M. É perfeito.

Eu encontrei a solução perfeita! Dê uma olhada: http://www.jbip.net/content/how-convert-mysql-sqlite

Primeiro, você precisa deste script (coloque-o em um arquivo chamado ‘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 

Em seguida, despeje uma cópia do seu database:

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

E agora, execute a conversão:

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

E se tudo correr bem, agora você deve ter um dumpfile.db que pode ser usado via 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 

Existem diferentes maneiras de fazer isso. Eu também tive esse problema e eu procurei muito. Então eu tenho uma maneira simples de converter MySql para Sqlite.

Siga estas instruções:

Passo 1 : Primeiro você precisa instalar o SqliteDB Browser (muito pequeno e rápido para visualizar tabelas e dados)

Passo 2 : Abra o seu arquivo MySql no bloco de notas ou seria ótimo se você abrir no Notepad ++

Etapa 3 : Remover as primeiras linhas extras Contém informações ou consultas e salvá-las.

Etapa 4 : Abrir Sqlite Db Brower, criar database, em seguida, tabelas e os mesmos tipos que no database Mysql.

Passo 5 : Na Barra de Menus do Sqlite Db Browser Selecione File-> Import File do MySql que você salvou.

Ele irá facilmente converter em Sqlite After Warning Dialog.

Se erro, remova mais linhas extras se o seu arquivo Mysql tiver.

Você também pode instalar o Mysql para Sqlite Converter Software na base de teste Mas a informação que eu estou dando para a conversão é tempo de vida.

Você também pode verificar este tutorial para obter mais ajuda: https://www.youtube.com/watch?v=UcAHsm9iwpw

Espero que esta ajuda.

Sqlite tem oficialmente lista de ferramentas de conversão.

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

Encontrei este plugin para o MySQL WorkBench:

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

Minha solução para esse problema executando um Mac era

  1. Instale Ruby e sequela semelhante à resposta do Macario. Eu segui este link para ajudar na instalação do Ruby, mysql e sqlite3 Configuração do Ruby on Rails para Mac OSX
  2. Instalar sequela

     $ gem install sequel 

    Se ainda for necessário

     % gem install mysql sqlite3 

    então usei o seguinte baseado no doc Sequel bin_sequel.rdoc (veja Copy Database)

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

Um usuário do Windows pode instalar o Ruby e o Sequel para uma solução Windows.

Se você tem experiência, escreva scripts simples por Perl \ Python \ etc e converta o MySQL em SQLite. Leia os dados do Mysql e escreva no SQLite.

Eu gosto do SQLite2009 Pro Enterprise Manager sugerido pelo Jfly. Contudo:

  • O tipo de dados MySQL INT não é convertido para o tipo de dados SQlite INTEGER (funciona com o DBeaver)

  • Ele não importa as principais foreign keys do MySQL (eu não encontrei nenhuma ferramenta que suporte a transferência de restrições de chave estrangeira do MySQL para o SQlite).

Da lista de ferramentas do conversor eu encontrei o Kexi . É uma ferramenta de interface do usuário para importar de vários servidores de database (incluindo o MySQL) para o SQLite. Ao importar algum database (digamos, do MySQL) ele o armazena no formato Kexi. O formato Kexi é o formato SQLite ‘nativo’. Então, basta copiar o arquivo kexi e ter seus dados no formato sqlite

Se você recebeu um arquivo de database e não instalou o servidor correto (SQLite ou MySQL), experimente esta ferramenta: https://dbconvert.com/sqlite/mysql/ A versão de teste permite converter os primeiros 50 registros de cada tabela. , o resto dos dados tem marca d’água. Este é um programa do Windows e pode ser despejado em um servidor de database em execução ou pode descarregar a saída para um arquivo .sql

Eu tentei uma série de methods neste segmento, mas nada funcionou para mim. Então aqui está uma nova solução, que eu também achei muito simples:

  1. Instale o RazorSQL . Funciona para Mac, Windows e Linux.
  2. No RazorSQL, conecte-se ao seu database, no localhost, por exemplo. Conversão não funciona com arquivos de despejo sql.
  3. Clique com o botão direito do mouse em seu database -> Conversão de Banco de Dados -> selecione SQLite. Isso salvará um arquivo txt com todas as consultas sqlite necessárias para criar esse database.
  4. Instale um gerenciador de database SQLite, como o DB Browser for SQLite . Funciona em qualquer sistema operacional.
  5. Crie um database vazio, vá para a guia Executar SQL e cole o conteúdo da etapa 3.

É isso aí, agora você tem seu database SQLite.

Este é um conversor simples: http://mysql2sqlite.felipemarques.com.br/ (o site é em português brasileiro)