Objectif
Ce tutoriel guide un expert Odoo France pas à pas pour réaliser une sauvegarde complète (base + filestore) et restaurer une instance Odoo en production. Exemple concret : migration vers un nouveau serveur ou reprise après incident.
Prérequis
- Accès SSH avec droits sudo sur le serveur source et cible.
- Accès au compte PostgreSQL (ex. rôle:
odoo). - Chemin du filestore (généralement
/var/lib/odoo/filestore/your_db). - Espace disque suffisant sur le serveur cible.
- Connaissance du nom de la base (ex.
ma_base_prod).
Étapes
-
1. Mettre l'instance en maintenance
Prévenir les utilisateurs. Sur le serveur, arrêter le service Odoo pour garantir une sauvegarde cohérente :
sudo systemctl stop odoo(adapté selon le nom de votre service). -
2. Sauvegarder la base PostgreSQL
Exemple de commande :
pg_dump -Fc -U odoo -h localhost ma_base_prod -f /tmp/ma_base_prod.dumpLe format compressé (-Fc) facilite la restauration. Si vous utilisez un autre port ou utilisateur, adaptez.
-
3. Sauvegarder le filestore
Copier l'arborescence du filestore :
sudo tar -czf /tmp/filestore_ma_base_prod.tgz -C /var/lib/odoo/ filestore/ma_base_prodVérifiez la taille et l'intégrité du fichier.
-
4. Transférer vers le serveur cible
Utilisez rsync ou scp :
scp /tmp/ma_base_prod.dump /tmp/filestore_ma_base_prod.tgz user@cible:/tmp/ -
5. Restaurer la base sur le serveur cible
Créer la base (ou laisser pg_restore la créer) :
pg_restore -C -U postgres -d postgres /tmp/ma_base_prod.dumpSi le rôle
odoomanque, créez-le :createuser -s odooou adaptez les droits. -
6. Restaurer le filestore
Décompressez au bon emplacement, en respectant l'arborescence d'Odoo :
sudo tar -xzf /tmp/filestore_ma_base_prod.tgz -C /var/lib/odoo/Ensuite, corrigez les permissions :
sudo chown -R odoo:odoo /var/lib/odoo/filestore/ma_base_prod -
7. Redémarrer et vérifier
Relancer le service :
sudo systemctl start odoo
Erreurs fréquentes et correctifs
- Rôle PostgreSQL manquant : créez le rôle ou modifiez la propriété de la base.
- Échec de pg_restore pour encodage : vérifier
client_encodinget la locale de la base source/cible. - Fichiers manquants dans le filestore : vérifiez l'arborescence et les permissions, comparez le nombre de fichiers.
- Module cassé à l'ouverture : relancer le chargement des modules depuis l'interface ou en ligne de commande (
--update=allen debug si nécessaire).
Vérification finale
- Connectez-vous avec un compte admin et vérifiez la page d'accueil.
- Ouvrez un module clé (ex. Ventes) et contrôlez que les données (commandes, produits) s'affichent.
- Vérifiez le filestore : comparez le nombre d'entrées dans
ir_attachmentet le nombre de fichiers sur disque. - Effectuez une opération simple (créer un produit, envoyer un devis) pour confirmer le bon fonctionnement.
Si vous préférez, je peux examiner votre configuration et faire un diagnostic ensemble, sans pression. Réservez un diagnostic ou contactez-moi pour discuter de votre projet : /rendez-vous.