En bref, c'est la panique à bord.Tout ça c'était la semaine dernière juste avant le devcamp dolibarr de Bordeaux: je reçoit un appel de détresse de cet utilisateur. Je regarde rapidement dans les X Go de "sauvegardes" qu'il me propose mais tous les fichiers de sauvegarde datent au mieux de 2021 :-(Au pire, les factures et devis au format PDF existent et me laissent envisager la possibilité de faire une réinjection de données en détournant ScanInvoices (qui est fait pour importer les factures fournisseurs mais on peut le faire marcher "à l'envers" pour reconstituer une base à partir des documents, c'est pas magique mais ça permet de remonter un historique dans ce genre de situation).
Mais finalement c'est un énorme coup de bol pour cette entreprise: dans son process de mise à jour il est passé d'un MySQL à MariaDB (enfin ça en a tout l'air) car le dossier C:\ProgramData\MySQL\...\data\ semble encore contenir la base de données de dolibarr "avant la catastrophe" ....
Donc direction:
- une copie de sauvegarde des fichiers (binaires) de MySQL data
- installation sur un autre pc windows (le plus dur à trouver pour moi, donc une vm, installation complète)
- installation du MySQL de la même version (ouf c'est possible)
- stop du nouveau MySQL
- copie des fichiers binaires dans le bon répertoire data
- start du MySQL ... accès root impossible (forcément je n'ai pas le mot de passe de l'installation)
Et ensuite
- création d'un fichier c:\\m.sql pour affecter un mot de passe à root (voir la doc c'est un grand classique)
- lancement de mysqld avec l'option magique init-file
- >mysqld.exe --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 5.7\\my.ini" --init-file=c:\\m.sql
- connexion avec dbeaver
- vérifications, petit moment de bonheur, envie de faire un appel client pour lui annoncer la bonne nouvelle mais non
- Création d'une sauvegarde "dump" mysql de la base de données
Puis
- installation d'un dolibarr tout propre sur un serveur web -> https://dolizen.fr/
- injection du dump sql
- vérifications d'usage
- et la, je passe mon appel au client, pour lui demander la date de dernier devis / dernière facture l'air de rien ... il me donne une date approximative, je confirme que c'est la date à laquelle j'ai son dernier devis et dernière facture, je lui donne le nom du client final + montant des documents, gros blanc au téléphone ...
Aujourd'hui ce client a eu du bol ... beaucoup de bol ... je crois qu'il est prêt pour parler de procédures de backups ...
PS: Illustration de John from USA, CC BY 2.0, via Wikimedia Commons
Laissez moi vous raconter une petite histoire commencée il y a une semaine...
Il était une fois une installation de Dolibarr ERP CRM en version "monoposte sur un PC Windows" avec DoliWamp (c'est un ensemble qui installe tout d'un coup et permet d'avoir un dolibarr fonctionnel en quelques minutes). Puis les années passent et finalement ce pc tombe en panne. C'est là que l'utilisateur se rend compte qu'il n'a pas de sauvegardes exploitables !!! Le hic c'est que la panne est intervenue lors de mises à jours successives du système d'exploitation et de la pile applicative !
Les fichiers de sauvegarde sql ne pèsent que quelques Ko ... ils sont vides !
Alors à cette étape c'est facile de dire "il faut toujours vérifier les backups" mais c'est trop tard !
La réinstallation d'un doliwamp (qui a été faite par l'utilisateur) n'est pas magique et le dolibarr réinstallé est vide lui aussi.
Il n'y a pas de "point de restauration" qui permettrait éventuellement de revenir en arrière.