Est-il possible de convertir MySQL en SQLite avec un outil gratuit sous Windows?
Il y a un script mysql2sqlite.sh sur GitHub
Comme décrit dans l'en-tête, le script peut être utilisé comme ceci:
./mysql2sqlite.sh myDbase | sqlite3 database.sqlite
alternatives
Voici une liste de convertisseurs:
Le lien semble en panne à présent, il est donc uniquement disponible via un capture instantanée sur archive.org , dernière mise à jour en 2011.
Une méthode alternative qui fonctionne même sur Windows mais qui est rarement mentionnée est la suivante: utilisez une classe ORM qui résume pour vous les différences de base de données spécifiques. par exemple. vous les obtenez dans PHP ( RedBean ), Python (couche ORM de Django, Storm , - (SqlAlchemy ), Ruby sur Rails ( ActiveRecord )), Cocoa ( CoreData =) etc.
c'est-à-dire que vous pourriez faire ceci:
Sequel (Ruby ORM) dispose d’un outil en ligne de commande pour gérer les bases de données. Vous devez avoir Ruby installé, puis:
$ gem install sequel mysql2 sqlite3
$ sequel mysql2://user:password@Host/database -C sqlite://db.sqlite
Tous les schémas de base de données ne peuvent pas être convertis. MySQL est plus complexe et riche en fonctionnalités que SQLite. Cependant, si votre schéma est assez simple, vous pouvez le sauvegarder dans un fichier SQL et essayer de l'importer/le charger dans une base de données SQLite.
De cette page Web: http://osenxpsuite.net
télécharger SQLite2009 Pro Enterprise Manager
Ce est gratuit. Il peut importer des données de la base de données Mysql. Je viens de convertir une base de données 17M. Il est parfait.
J'ai trouvé la solution parfaite! jetez un oeil à: http://www.jbip.net/content/how-convert-mysql-sqlite
Tout d'abord, vous avez besoin de ce script (placez-le dans un fichier nommé 'mysql-to-sqlite.sh'):
#!/bin/bash
if [ "x$1" == "x" ]; then
echo "Usage: $0 <dumpname>"
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
Ensuite, exportez une copie de votre base de données:
you@Prompt:~$ mysqldump -u root -p --compatible=ansi --skip-opt generator > dumpfile
Et maintenant, lancez la conversion:
you@Prompt:~$ mysql-to-sqlite.sh dumpfile
Et si tout se passe bien, vous devriez maintenant avoir un fichier dumpfile.db qui peut être utilisé 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
SQLite a officiellement la liste des outils de conversion.
J'ai rencontré le même problème il y a environ 2 jours lorsque j'ai dû convertir une base de données MySQL de 20 Go + en SQLite. Ce n’était en aucun cas une tâche facile et j’ai fini par écrire this Python) qui fait le travail.
L’avantage de l’écriture dans Python est qu’elle est multiplateforme (contrairement à un script Shell/bash) et n’a que des dépendances minimales (qui peuvent toutes être installées facilement à l’aide de pip install
). Il utilise des générateurs et une fragmentation des données en cours de traitement et est donc très efficace en termes de mémoire.
J'ai également fait des efforts pour traduire correctement la plupart des types de données de MySQL en SQLite .
Le script est invocable via la ligne de commande, mais peut également être utilisé comme classe standard Python que vous pouvez inclure dans une orchestration plus grande Python.
Voici comment vous l'utilisez:
usage: mysql2sqlite.py [-h] [-f SQLITE_FILE] [-u MYSQL_USER]
[-p MYSQL_PASSWORD] [-d MYSQL_DATABASE]
[--mysql-Host MYSQL_Host] [-c CHUNK] [-l LOG_FILE]
optional arguments:
-h, --help show this help message and exit
-f SQLITE_FILE, --sqlite-file SQLITE_FILE
SQLite3 db file
-u MYSQL_USER, --mysql-user MYSQL_USER
MySQL user
-p MYSQL_PASSWORD, --mysql-password MYSQL_PASSWORD
MySQL password
-d MYSQL_DATABASE, --mysql-database MYSQL_DATABASE
MySQL Host
--mysql-Host MYSQL_Host
MySQL Host
-c CHUNK, --chunk CHUNK
Chunk reading/writing SQL records
-l LOG_FILE, --log-file LOG_FILE
Log file
Il y a différentes facons de faire cela. J'ai aussi eu ce problème et j'ai cherché beaucoup. Ensuite, j’ai eu un moyen simple de convertir MySql en Sqlite.
Suivez ces instructions:
Étape 1 : vous devez d'abord installer le navigateur SqliteDB (très petit et rapide pour afficher les tableaux et les données).
Étape 2 : ouvrez votre fichier MySql dans le Bloc-notes ou ce serait bien si vous ouvriez dans le Bloc-notes ++
Étape 3 : supprimez les premières lignes supplémentaires contenant des informations ou des requêtes et enregistrez-les.
Étape 4 : ouvrez Sqlite Db Brower, créez une base de données, puis des tables et les mêmes types que dans la base de données Mysql.
Étape 5 : dans la barre de menus de Sqlite Db Browser, sélectionnez Fichier-> puis Importer le fichier Mysql que vous avez enregistré.
Il se convertira facilement en dialogue après dialogue d'avertissement.
En cas d'erreur, supprimez d'autres lignes si votre fichier Mysql en contient.
Vous pouvez également installer Mysql to Sqlite Converter Software à titre d’essai, mais l’information que je vous donne pour la conversion est une durée de vie.
Vous pouvez également consulter ce didacticiel pour obtenir de l'aide supplémentaire: https://www.youtube.com/watch?v=UcAHsm9iwpw
J'espère que cette aide.
Moyen le plus simple de convertir une base de données MySql en SQLite:
1) Générez un fichier de vidage SQL pour votre base de données MySql.
2) Téléchargez le fichier sur le convertisseur en ligne RebaseData ici
3) Un bouton de téléchargement apparaîtra sur la page pour télécharger la base de données au format Sqlite
Ma solution à ce problème avec un Mac était de
Installer suite
$ gem install sequel
Si nécessaire
% gem install mysql sqlite3
a ensuite utilisé les éléments suivants basés sur la documentation Sequel bin_sequel.rdoc (voir Copier une base de données)
sequel -C mysql://myUserName:myPassword@Host/databaseName sqlite://myConvertedDatabaseName.sqlite
Un utilisateur Windows peut installer Ruby et Sequel pour une solution Windows.
Trouvé ce plugin pour MySQL WorkBench:
http://www.henlich.de/software/sqlite-export-plugin-for-mysql-workbench/
J'ai essayé un certain nombre de méthodes sur ce fil, mais rien n'a fonctionné pour moi. Voici donc une nouvelle solution que j’ai également trouvée très simple:
sqlite
nécessaires à la création de cette base de données.Ça y est, vous avez maintenant votre base de données SQLite.
J'aime le logiciel SQLite2009 Pro Enterprise Manager proposé par Jfly. Pourtant:
Le type de données MySQL INT n'est pas converti en type de données SQlite INTEGER (fonctionne avec DBeaver)
Il n’importe pas les contraintes de clé étrangère depuis MySQL (je n’ai trouvé aucun outil prenant en charge le transfert des contraintes de clé étrangère de MySQL vers SQlite.)
Si vous avez reçu un fichier de base de données et n’avez pas installé le bon serveur (SQLite ou MySQL), essayez cet outil: https://dbconvert.com/sqlite/mysql/ La version d’essai autorise la conversion. les 50 premiers enregistrements de chaque table, le reste des données est tatoué. Il s’agit d’un programme Windows, qui peut soit exporter dans un serveur de base de données en cours d’exécution, soit exporter un fichier .sql.
Si vous avez de l'expérience, écrivez des scripts simples avec Perl\Python\etc et convertissez MySQL en SQLite. Lisez les données de Mysql et écrivez-les sur SQLite.
Réponse non programmatique mais cela m'a fait gagner beaucoup de temps. convertisseur SQL en SQLite
Ici, j'ai pu convertir une base de données contenant 33 tables. A pris environ une minute.
De liste des outils de conversion j'ai trouvé Kexi . C’est un outil d’interface utilisateur à importer dans SQLite à partir de divers serveurs de base de données (y compris MySQL). Lors de l'importation d'une base de données (par exemple de MySQL), elle est stockée au format Kexi. Le format Kexi est le format SQLite 'natif'. Donc, copiez simplement le fichier kexi et ayez vos données au format sqlite