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
- Export SQL :
mysqldump -u root -p --single-transaction --routines \
--databases db_source > sauvegarde_source.sql -
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).
- Copiez le répertoire
- 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.
- Elles sont souvent stockées dans des tables
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/.
- Copiez le répertoire complet
files/depuis la source → le même chemin dans le serveur cible. - Assurez‑vous que le propriétaire du répertoire corresponde à l’utilisateur du serveur web (
www-dataouapache). - 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
- Planifier une fenêtre de coupure (ex. nuit du week‑end).
- Bloquer l’accès en écriture sur la base source (mode
read‑only). - Ré‑exporter les changements delta depuis la source (ex. nouvelles factures) et les appliquer via un script de migration incrémentale.
- Mettre à jour la configuration web (vhost, DNS, SSL) pour pointer sur le nouveau serveur.
- 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
- Plan de sauvegarde automatisé –
bash+cronou outil dédié (Barman, Duplicati). - 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.
- Documentation des processus – Créez un wiki interne avec les scripts, les mappings et les contacts de support.
- Formation des utilisateurs – Organisez une session de formation de 2 h pour les équipes comptable et ventes.
- Monitoring des logs – Centralisez les logs Apache/Nginx et le fichier
dolibarr.logafin 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
- Préparer un environnement de test,
- Exporter et mapper les données de façon structurée,
- Automatiser les imports (scripts, Docker),
- Valider chaque étape (contrôle de comptage, tests fonctionnels),
- 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.