Guide pratique : mettre en place migration sur Dolibarr pour gagner du temps

Par [Votre Nom], consultant ERP & CRM


1. Pourquoi migrer vers Dolibarr ?

Dolibarr est un ERP/CRM open‑source léger, idéal pour les PME et les indépendants. Sa simplicité d’utilisation, sa modularité et son coût (gratuit) en font un choix attractif lorsqu’on veut rationaliser la gestion commerciale, la comptabilité ou les ressources humaines sans se perdre dans la complexité des solutions lourdes.

Cependant, passer d’un système legacy (Excel, un autre logiciel, ou même d’une version précédente de Dolibarr) peut s’avérer chronophage si l’on ne planifie pas les étapes clés. Ce guide vous propose une méthodologie pas‑à‑pas pour automatiser la migration des données, sécuriser le transfert et minimiser les interruptions d’activité.


2. Pré‑requis avant de commencer

Élément Description Vérification
Version cible Décidez si vous migrez vers Dolibarr 15 ou plus récent (les améliorations de l’API JSON, les nouveaux modules et les champs enrichis sont souvent utiles). Consultez le changelog officiel.
Environnement de staging Créez une copie isolée (Docker ou VM) où tester la migration. docker run -d --name dolibarr-test -p 8080:80 dolibarr/dolibarr
Sauvegardes Export‑/import‑SQL complet + copies des fichiers (document_management). Sauvegardez sur un stockage外部 (NAS, cloud).
droits d’accès Un compte admin MySQL/MariaDB et un accès SSH au serveur (ou accès Docker). Testez ssh user@host et mysql -u root -p.
Modules à migrer Listez les modules (Clients, Fournisseurs, Produits, Devis, Factures, Comptes comptables, etc.). Un tableau de suivi simplifie le suivi.
Contraintes légales RGPD, archivage des documents, exigences fiscales locales. Votre service juridique valide les champs à conserver.


3. Étapes clés de la migration

3.1. Exporter les données source

  1. Export SQL :
    mysqldump -u root -p --single-transaction --routines \
    --databases db_source > sauvegarde_source.sql
  2. Export des fichiers (document_management) :

    • Copiez le répertoire files/ du serveur source vers un répertoire dédié (/var/backups/dolibarr_files).
    • Vérifiez les permissions (chmod -R 755).

  3. Export des listes de référence (ex. listes de pays, devises) :

    • Elles sont souvent stockées dans des tables static_* que vous pouvez exporter séparément.

3.2. Transformer les données (ETL léger)

Dolibarr utilise une structure de tables légèrement différente de d’autres ERP. Voici les mapping les plus fréquents :

Source Destination Dolibarr Mapping recommandé
customers client client.libelle = customer.name
suppliers societe societe.libelle = supplier.name
products produit produit.label = product.ref; produit.type = 'PRODUIT'
invoices facture facture.fac_number = invoice.inv_number; facture.amount = invoice.total
payments paiement paiement.fk_paiement = payment.id
documents document document.realpath = '/var/backups/dolibarr_files/...'

Astuce : Vous pouvez automatiser ces mappings avec un petit script Python/Node.js qui lit le dump SQL, applique les transformations et génère des requêtes INSERT. Exemple minimal en Python :

import sqlalchemy as sa
from io import StringIO
engine_src = sa.create_engine('mysql+pymysql://user:pwd@host/srcdb')
engine_dol = sa.create_engine('mysql+pymysql://user:pwd@host/doldb')
with engine_src.connect() as src:
for df in pd.read_html(src.execute('SELECT * FROM customers').text):
df['libelle'] = df['name']
df.to_sql('client', engine_dol, if_exists='append', index=False)

3.3. Importer les fichiers (document management)

Dolibarr期望 que les fichiers soient placés dans le répertoire files/.

  1. Copiez le répertoire complet files/ depuis la source → le même chemin dans le serveur cible.
  2. Assurez‑vous que le propriétaire du répertoire corresponde à l’utilisateur du serveur web (www-data ou apache).
  3. Dans l’interface Dolibarr → Paramètres → Document Management → Synchroniser les fichiers (si vous utilisez la fonction d’indexation).

3.4. Ré‑indexer la base de données

Après le chargement, lancez les réparations d’index :

OPTIMIZE TABLE client, societe, produit, facture, paiement;

3.5. Vérifier l’intégrité

Vérification Méthode
Contrôle de comptage SELECT COUNT(*) FROM client; vs source
Vérif. de clés étrangères SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME IS NULL; (pas de clés orphelines)
Tests fonctionnels Créez des devises, factures, et payez‑les pour valider le flux comptable.
Tests d’erreurs de mapping Comparez un échantillon de 50 lignes (ex. factures de plus de 1 000 €).

3.6. Mise en production

  1. Planifier une fenêtre de coupure (ex. nuit du week‑end).
  2. Bloquer l’accès en écriture sur la base source (mode read‑only).
  3. Ré‑exporter les changements delta depuis la source (ex. nouvelles factures) et les appliquer via un script de migration incrémentale.
  4. Mettre à jour la configuration web (vhost, DNS, SSL) pour pointer sur le nouveau serveur.
  5. Déployer les licences et clés API si vous utilisez des extensions (ex. paiement en ligne).


4. Astuces pour gagner du temps

Astuce Description Gains estimés
Utiliser la fonction d’export CSV de Dolibarr Certaines versions offrent un export direct des tables (ex. exporter.csv). 10–15 % de temps en moins sur le tranchage manuel.
Planifier des imports incrémentaux Créez un job CRON qui récupère les INSERT depuis la source à chaque exécution (timestamp updated_at). Réduction des fenêtres de maintenance (pas besoin de tout réimporter).
Batch processing avec mysqldump --extended-insert Les inserts groupés sont beaucoup plus rapides que les inserts ligne par ligne. Accélération de l’import de tables volumineuses (> 100 k lignes).
Automatiser les vérifications via scripts Python Un script qui fait le diff des jeux de clés (client.id) entre source et cible avant de lancer la migration. Détection précoce des problèmes, évite les retours en back‑track.
Docker Compose pour reproduire l’environnement Décrivez les services (db, web, phpmyadmin) dans un fichier docker-compose.yml pour recréer rapidement l’environnement de test. 5 min de démarrage vs. 30 min de config manuelle.
Utiliser les modules “Data Import” (si existants) Dolibarr propose des modules d’import/export de données (ex. “CSV import”). Utilisation directe de l’interface, aucune programmation nécessaire.
Nettoyer les données avant migration Supprimez les doublons ou les champs en trop (ex. adresses invalides). Moins d’erreurs de mapping et de temps de traitement.


5. Checklist de validation finale

Action
1 Backup complet de la base de destination et des dossiers files/.
2 Import des données sans erreur (log de INSERT ≤ 0).
3 Vérification de la cohérence : comptages, sommes totales, totaux TTC.
4 Tests fonctionnels : création d’une facture, paiement, génération d’un devis.
5 Test de performance : temps de chargement d’une liste de 10 000 produits.
6 Synchronisation des fichiers : tous les documents sont accessibles via l’URL /files/….
7 Mise à jour des utilisateurs : migration des droits (admin, comptable, client).
8 Documentation : capture d’écran des paramètres, scripts utilisés, procédure de rollback.
9 Passage en production : bascule DNS + monitoring (UptimeRobot, Grafana).
10 Suivi post‑déploiement : 24 h, 1 semaine, 1 mois – vérifier les erreurs récurrentes.


6. Bonnes pratiques post‑migration

  1. Plan de sauvegarde automatisébash+cron ou outil dédié (Barman, Duplicati).
  2. Mise à jour régulière – Suivez le tableau de release de Dolibarr ; appliquez les patches de sécurité dès qu’ils sont publiés.
  3. Documentation des processus – Créez un wiki interne avec les scripts, les mappings et les contacts de support.
  4. Formation des utilisateurs – Organisez une session de formation de 2 h pour les équipes comptable et ventes.
  5. Monitoring des logs – Centralisez les logs Apache/Nginx et le fichier dolibarr.log afin de détecter rapidement les anomalies.


7. Exemple de script de migration incrémentale (bash + MySQL)

#!/usr/bin/env bash
# migrate_delta.sh – script à placer dans cron pour synchroniser les changements depuis la source
SRC_HOST="src-db.example.com"
SRC_DB="db_source"
DST_HOST="dst-db.example.com"
DST_DB="dolibarr_prod"
USER="dolibarr_user"
PASS="********"
# 1️⃣ Récupérer le timestamp du dernier run (stocké dans un fichier)
LAST_RUN=$(cat /var/backups/migration.last_run 2>/dev/null || echo "0")
# 2️⃣ Exporter les nouvelles lignes (exemple : table facture)
mysqldump -h "$SRC_HOST" -u root -p"$PASS" --single-transaction \
--where="updated_at > FROM_UNIXTIME($LAST_RUN)" "$SRC_DB" facture \
> /tmp/facture_delta.sql
# 3️⃣ Importer dans la cible
mysql -h "$DST_HOST" -u "$USER" -p"$PASS" "$DST_DB" < /tmp/facture_delta.sql
# 4️⃣ Met à jour le timestamp
NOW=$(date +%s)
echo "$NOW" > /var/backups/migration.last_run

Ce script peut être scdnés à 0 2 * * * (tous les jours à 02 h) pour appliquer uniquement les nouvelles factures et éviter un import complet à chaque fois.


8. Conclusion

Mettre en place une migration vers Dolibarr n’est pas forcément une opération lourde : en suivant les 5 piliers que sont

  1. Préparer un environnement de test,
  2. Exporter et mapper les données de façon structurée,
  3. Automatiser les imports (scripts, Docker),
  4. Valider chaque étape (contrôle de comptage, tests fonctionnels),
  5. Planifier le basculement avec des fenêtres de maintenance limitées,

vous maximisez votre productivité et gagnez jusqu’à 40 % de temps par rapport à une migration manuelle.

En appliquant les astuces et la checklist présentées ci‑dessus, votre projet de migration se transformera en une opération fiable, reproductible et pérenne, vous laissant plus de temps pour exploiter les nouvelles fonctionnalités de Dolibarr et accroître la performance de votre activité.

Bonne migration ! 🚀


Pour toute question détaillée sur un module spécifique (ex. import de devis, synchronisation des comptes bancaires), n’hésitez pas à me le préciser.

Publications similaires