Mysql2sqlite.sh mentionné dans le premier post ne gère pas bien les lignes PRIMARY KEY, il n'écrit pas la parenthèse fermante )
pour compléter l'instruction CREATE.
Voici ce que j'ai fait. J'ai exécuté la sauvegarde mysql comme suit :
mysqldump --skip-create-options --compatible=ansi --skip-extended-insert --compact --single-transaction -h -u -p > localdb.txt
J'ai ensuite utilisé grep pour supprimer PRIMARY KEY et KEY :
cat localdb.txt | grep -v "PRIMARY KEY' | grep -v KEY > localdb.txt.1
Ensuite, j'ai utilisé un éditeur pour corriger le fichier. Lorsque les clés sont supprimées, vous obtenez une instruction CREATE qui ressemble à ceci :
CREATE ...
...,
)
Il faut supprimer cette virgule finale ,
. Dans vi, cette expression les correspond ,$\n)
Ensuite, vous devez remplacer tous les \'
par ''
Ensuite, vous pouvez importer :
sqlite3 local.sqlite3 < localdb.txt.1
Et voilà. Je n'ai trouvé aucun programme qui a fonctionné pour moi. J'espère que cela aide quelqu'un.
3 votes
Le projet SQLite dispose également d'une page sur les utilitaires de conversion : sqlite.org/cvstrac/wiki?p=ConverterTools
0 votes
@Clinton il y a un avertissement sur la page à laquelle vous avez lié indiquant que les informations sont obsolètes.
1 votes
@Le lien Clinton renvoie "Non trouvé". Il semble que ces outils de conversion ne soient plus disponibles ou pris en charge.
2 votes
@EAmez - www2.sqlite.org/cvstrac/wiki?p=ConverterTools
0 votes
Utilisez DBeaver : dbeaver.com/docs/wiki/Data-migration