j’ai acheté un PC...
Import SQL avec barre de progression

Import SQL avec barre de progression

Vous avez un dump sql de 15 Go à remonter sur votre base de données, vous le lancez et pendant de longues minutes vous contemplez quelque chose comme ceci :

$ zcat data-export.gz | mysql -u measuser -p -h db_host -P 3306 mydatabase
Enter password: 

Est-ce que cela fonctionne ? Combien de temps avant la fin ? Est-ce que le terminal à freeze ?

Pipe View

pv est un outil qui permet d’avoir en temps réel l’état d’avancement d’une tache ou d’un flux de données ( https://man7.org/linux/man-pages/man1/pv.1.html ).

Pour l’installer :

sudo apt install pv

Utilisation

La commande devient alors :

$ zcat data-export.gz | pv --progress --size $(zcat data-export.gz | wc -c) --name '  Importing.. ' \
    | mysql -u measuser -p -h db_host -P 3306 mydatabase
Enter password: 
  Importing.. [=========>                                                             ] 15%

Et voilà ! Une barre de progression qui permet de savoir où en est l’import.

Attention : La commande $(zcat data-export.gz | wc -c) qui permet d’avoir le taille en byte du fichier décompressé est longue. Elle lit tout le fichier. Cela peut être intéressant de la sortir pour ne l’exécuter qu’une seule fois.

Le truc est tiré de stackoverflow .

Edit 2021-12-20

Dans un commentaire hg propose cette syntaxe qui laisse pv gérer la taille du dump. À tester :

pv -pret --name ' Importing.. ' data-export.gz | zcat \
    | mysql -u measuser -p -h db_host -P 3306 mydatabase

Import SQL avec barre de progression est paru le

Cet article vous a plu, n’hésitez pas à laisser un commentaire sur le Journal du Hacker