convertir des tables sqlite en mysql

+2 votes
16,669 vues
question 15 Novembre 17 dans serveur Mysql par jmlb (164 points)  
Comment faire pour convertir une très grosse table de 3.5 Go ? soit en php, soit en passant par le shell

Google m'a seulement trouvé des convertisseurs en ligne, mais avec 3.5 Go faut même pas y penser.

ou si le sav pouvait s'en charger ...

merci

1 Réponse

+1 vote
réponse 16 Novembre 17 par ladmin (2,272 points)  

Il vaut mieux savoir le faire. Dans la plupart des cas et dans celui de vos bases en particulier, cela pourait suffire :
- Allez au shell ; normalement vos codes mysql sont dans .my.cnf

- Tapez

sqlite3 ma-base-sqlite ( les commandes commencent par un point )

  • .output matable.sql
  • .dump matable
  • .exit

Puis créez le fichier filtre.regex avec

s/INSERT INTO \"([0-9a-zA-Z_]+)\"/INSERT INTO $1/g;
s/PRAGMA//;
s/BEGIN/START/;
s/foreign_keys\=OFF//;

enfin revenez au shell pour taper :

perl -p filtre.regex matable.sql | mysql -f --database=mabasesousmysql

 

Remplacez ci dessus ma-base-sqlite , matable.sql et mabasesousmysql par leurs bons noms.

surveillez les messages d'erreurs. Revenez vers nous en cas de difficultés.

 

commentée 17 Novembre 17 par jmlb (164 points)  
impec, merci
Feel free to ask and answer in english

Bienvenue sur les FAQ de 123.fr, posez vos questions ou répondez à celles des autres usagers.

...