Restaurer les données de Dolibarr (mysql) avec un script .bat de Windows

numbers

Salut à tous,

J’ai récemment eu un souci avec une version personnalisée de Dolibarr. J’ai bidouillé l’interface de sauvegarde/restauration pour le client. Cependant quand le fichier de sauvegarde est trop lourd ( au delà de 15Mo) l’importation échoue des fois et le comble est que l’utilisateur n’a plus la main pour refaire l’importation.

J’avais le choix entre :

  • coder une interface en php basique pour charger le fichier de restauration (avec risque potentiel d’échec de l’importation encore mais au moins l’interface de restauration sera toujours accessible);
  • lui paramétrer PhpmyAdmin que je trouve trop lourd pour lui et encore une fois le risque d’erreur de chargement est toujours présent;
  • lui coder une petite interface avec Delphi ou autre outil du genre (l’envie m’a manqué :-))
  • ou lui écrire un fichier bat vite fait (solution retenue)

J’ai fouillé (“duckducké” pour être plus précis www.duckduckgo.com) un peu pour réviser les commandes et finalement j’ai le code commenté ci-dessous.

Les plus

  • Le script est rapide
  • Le script est adaptable à d’autres projets
  • Le script est maintenable
  • Le script peut offrir plus tard l’option de sauvegarde aussi

Les moins

  • le mot de passe d’accès à la base est visible
  • je n’ai pas trouver le moyen de mettre le chemin du fichier dans une variable

Ressources

https://windows.developpez.com/cours/ligne-commande

https://www.thesoftwareguy.in/backup-restore-mysql-database-windows-batch-file/

 


REM Desactive l’affichage des commandes
@echo off
REM Change le titre de la fenetre, sa taille et la couleur du texte
title Fichier de restauration
mode con cols=85 lines=100
color 00

echo =————–=
echo = Restauration =
echo =————–=

:DEBUT
REM Verifie si le fichier existe avant de continuer
echo.
if not exist D:\monprojet.sql echo Verifiez que le fichier de sauvegarde monprojet.sql est sur le D:\

echo.
REM Message d’annonce de debut de chargement
if exist D:\monprojet.sql echo Chargement du fichier de restauration en cours….
CHEMIN\VERS\mysql.exe -u monprojet -pPASSWORD test < D:\monprojet.sql
echo Fin de chargement du fichier de restauration
echo Verifier voir si le logiciel fonctionne normalement

REM L’utilisateur decide s’il faut reprendre, supprimer le fichier de sauvegarde ou quitter
echo.
set /p choix=Entrez -1 pour reprendre la restaration -2 pour supprimer le fichier de restauration -3 pour quitter:
if “%choix%” == “1” goto :DEBUT
if “%choix%” == “2” goto :SUPPRIME
if “%choix%” == “3” goto :QUITTER

:SUPPRIME
del D:\monprojet.sql

:QUITTER
echo.
echo Merci – Appuyer sur une touche pour quitter

REM Attend l’appui d’une touche pour voir les messages affichés
pause > nul

 

Advertisements