Dolibarr preferred partner

Dolibarr – Récupérer ses données d’un hébergeur qui ferme

Appel inquiet d’un utilisateur du service d’hébergement dolihobiduletruc.com (nom masqué par respect vis à vis de cette entreprise) hier : “le service ferme bientôt et nous n’arrivons pas à récupérer nos données”…

Et effectivement, la sauvegarde de la base de données est téléchargeable mais pour ce qui est de la sauvegarde des documents : impossible, le fichier est probablement trop gros pour le serveur qui plante (erreur 500) à chaque tentative de téléchargement.

Bien sûr, sur cet hébergement nous n’avons pas de connexion FTP, pas de SSH  et aucune possibilité d’installer un plugin … bref cet hébergement a “capturé” les données et cet appel est bel et bien un appel au secours.

Voici la procédure que nous avons mise en œuvre pour récupérer le maximum de données, ça pourrait être utile à d’autres !

L’idée principale est de passer par la GED de Dolibarr (il faut donc activer ce module si ce n’est pas le cas), puis si vous allez sur Documents > Arborescence automatique (l’adresse est /ecm/index_auto.php) … sur cette page vous pourrez “voir” vos données. Et avec beaucoup de patience vous pourriez télécharger un à un tous vos fichiers !

Si vous voulez automatiser la récupération de données (utile si vous avez plusieurs centaines de Mo de fichiers à récupérer et surtout si vous voulez ensuite pouvoir les réinjecter dans votre nouveau serveur dolibarr) vous pouvez suivre la procédure suivante:

 

  • 2. Exportez le cookie de session et sauvegardez le dans le fichier (par exemple) /tmp/cookie.txt, voici le contenu du fichier :

# Netscape HTTP Cookie File
xxxxx.xxxxxx.com	FALSE	/	FALSE	0	DOLSESSID_d51bdbe1861f4e996b899d4650231861	ao8s9bvkeuu08r65o604le8ua1
  • 3. Puis en ligne de commande, pour récupérer les différentes catégories de la GED automatiquement :
for module in propal order order_supplier contract invoice invoice_supplier expensereport project propal company
do
  wget -k --load-cookies cookies.txt "https://xxxxxx.dolihobiduletruc.com/ecm/index_auto.php?module=${module}" -O ${module}.html
done
  • 4. Ensuite il faut récupérer la liste des documents à télécharger :

for module in propal order order_supplier contract invoice invoice_supplier expensereport project propal company
do
  grep document.php ${module}.html | sed s/".*href="/""/ | awk '{print $1}' > ${module}.download
done
  • 5. Enfin, vous pouvez lancer le téléchargement brutal de tous les documents

for module in propal order order_supplier contract invoice invoice_supplier expensereport project propal company
do
  mkdir ${module}
  (
    cd ${module}
    wget --load-cookies ../cookies.txt -i ../${module}.download
  )
done
  • 6. La liste des fichiers téléchargés peut vous faire un peu peur car ils contiennent le nom complet du script de téléchargement (encodés “url”), par exemple exemple :

document.php?modulepart=propal&attachment=0&file=PR1805-0001%2FPR1805-0001.pdf
document.php?modulepart=propal&attachment=0&file=PR2002-0036%2FPR2002-0036.pdf
  • 7. Vous pouvez faire un petit coup de nettoyage (mais pas trop, gardez le %2F pour plus tard)

for i in document.php*
do
  fic=`echo $i | sed s/'.*file='/''/`
  mv $i "$fic"
done
  • 8. Copiez tout ça sur le serveur de destination sur lequel vous installez votre nouveau dolibarr et ensuite

for i in *.pdf
do
  rep=`echo $i | cut -d '%' -f1`
  fic=`echo $i | sed s/".*2F"/""/`
  mkdir $rep
  mv "$i" $rep/$fic
done

Et voilà l’idée est qu’avec ces éléments techniques vous devriez être en mesure de réaliser votre migration de données même si votre hébergeur de départ ne donne plus trop signe de vie !

N’hésitez pas à nous demander de vous aider pour migrer vos données, la 1ere fois c’est un peu compliqué pour inventer la solution mais les fois suivantes ça devrait aller plus vite !

PS: la procédure normale (pour le transfert de la base de données en particulier) est documentée sur le wiki dolibarr: https://wiki.dolibarr.org/index.php?title=Migrer_mon_Dolibarr_vers_une_offre_Cloud