Une base Odoo qui part en erreur un vendredi soir pose toujours la même question : la sauvegarde d'hier se restaure-t-elle vraiment, et en combien de temps ? Mieux vaut connaître la réponse avant d'en avoir besoin. C'est le sujet du conseil d'exploitation de cette semaine, après les trois correctifs que j'ai retenus dans les dépôts d'Odoo entre le vendredi 21 et le jeudi 27 août.
Deux de ces correctifs viennent du dépôt odoo/enterprise, qui contient les modules propres à l'édition Enterprise, dont l'application Comptabilité et les déclarations fiscales françaises. Le troisième vient du dépôt public odoo/odoo. Les trois sont arrivés sur la branche 19.0 pendant la semaine.
Trois correctifs de la semaine
Coût des ventes faussé après le retour d'un retour
Le scénario est celui d'un négoce ordinaire. Un produit valorisé au coût moyen, en valorisation permanente, est livré et facturé. Le client le retourne, on émet un avoir, puis le produit repart finalement chez le client : c'est le retour du retour. Si le coût du produit a changé entre-temps, la nouvelle facture comptabilisait un coût des ventes faux. L'exemple du commit donne 190 au lieu de 100. La cause : le calcul ne tenait pas compte des avoirs déjà passés, si bien que la première facture et l'avoir ne s'annulaient pas. Le correctif du 20 août en 19.0 intègre désormais les avoirs dans le calcul.
Ce cas est rare, mais il touche une ligne qui alimente directement la marge. Si vous gérez des retours fréquents en valorisation permanente, regardez les écritures de coût des ventes des factures émises après un double retour.
Annuler un rapprochement bancaire ne défait plus toute la facture
Une facture client réglée en plusieurs virements est rapprochée de plusieurs lignes de relevé bancaire. Jusqu'ici, si l'on annulait le rapprochement d'une seule de ces lignes, par exemple parce qu'un virement avait été affecté à la mauvaise facture, Odoo annulait tous les rapprochements de la facture, qui redevenait entièrement impayée. Les factures fournisseurs étaient touchées de la même façon. Le correctif du 25 août, dans le module account_accountant de l'Enterprise, limite l'annulation à la ligne de relevé concernée.
Si un de vos comptables a annulé un rapprochement partiel ces derniers mois, vérifiez que les autres paiements de la facture sont toujours lettrés. Le statut de paiement de la facture vous le dira tout de suite : une facture qui devrait être partiellement payée et qui apparaît non payée est suspecte.
Télédéclaration de la TVA : deux erreurs d'envoi corrigées
Le module l10n_fr_reports de l'Enterprise transmet la déclaration de TVA en EDI, par l'intermédiaire du partenaire ASPOne. Deux correctifs de la semaine touchent cet envoi. Le premier, du 25 août, concerne les demandes de remboursement de crédit de TVA : le schéma XML de l'EDI-TVA limite à 35 caractères le nom du titulaire du compte bancaire, et Odoo envoyait le nom complet. Il le répartit désormais sur deux zones. Le second, du 24 août, porte sur le motif de la mention expresse : un motif composé uniquement d'espaces faisait disparaître une zone obligatoire du fichier, et l'envoi échouait. Odoo vérifie maintenant que le motif contient vraiment du texte.
Si la raison sociale de votre société dépasse 35 caractères et que vous demandez des remboursements de crédit de TVA, testez la prochaine demande après la mise à jour plutôt que la veille de l'échéance.
Une sauvegarde n'existe que si on l'a restaurée
Sauvegarder est la partie facile, et Odoo s'en charge souvent pour vous. Restaurer est une autre affaire : il faut retrouver le bon fichier, une base avec ses pièces jointes, une version d'Odoo compatible et une personne qui sait faire. Je conseille un test de restauration au moins une fois par trimestre, et après chaque changement d'hébergement ou de version. L'ancien article sur la sauvegarde d'une base Odoo couvrait la première moitié du sujet ; voici la seconde, mode d'hébergement par mode d'hébergement.
Odoo.sh : restaurer la production dans une branche de staging
D'après la documentation d'Odoo.sh, la production est sauvegardée automatiquement chaque jour. Le serveur conserve sept sauvegardes quotidiennes et quatre hebdomadaires ; des serveurs de sauvegarde dédiés gardent en plus trois sauvegardes mensuelles, que l'on obtient en passant par le support. Chaque sauvegarde comprend le dump de la base, le filestore (pièces jointes), les journaux et les sessions.
- Dans le projet, ouvrez une branche de staging, puis l'onglet Backups.
- Restaurez une sauvegarde de la production dans cette branche. La documentation prévoit précisément cet usage, pour des tests ou pour récupérer des données supprimées par erreur.
- Connectez-vous à la base restaurée et contrôlez une facture récente, une pièce jointe et un rapport.
- Notez la durée totale de l'opération.
Deux limites à connaître : les bases de staging sont supprimées automatiquement au bout d'un mois, et les sauvegardes manuelles, limitées à cinq par jour, ne restent disponibles que trois jours.
Online : dupliquer, puis télécharger
En Online, le gestionnaire de bases propose deux gestes complémentaires. Dupliquer crée une copie, avec l'option « À des fins de test » cochée par défaut, qui désactive les actions externes comme les emails et les paiements. Une copie expire au bout de 15 jours, et on peut en créer cinq au maximum par base. Télécharger une sauvegarde produit un fichier ZIP. Si le bouton est grisé, la base est trop volumineuse pour ce canal, et il faut demander une autre solution au support.
Le vrai test, en Online, consiste à télécharger ce ZIP et à le charger ailleurs, par exemple dans une branche Odoo.sh via l'import de base, ou sur un serveur de test. C'est la seule façon de savoir que vos données vous appartiennent en pratique, et pas seulement sur le papier.
Sur site : la commande db load avec neutralisation
Sur vos propres serveurs, la ligne de commande d'Odoo sait sauvegarder et restaurer une base avec son filestore. odoo-bin db dump <base> <fichier> produit un ZIP qui inclut le filestore par défaut. odoo-bin db load <nouvelle_base> <fichier> le recharge, et l'option --neutralize neutralise la copie après restauration. Prenez ce réflexe à chaque fois : il évite qu'une base de test envoie des emails aux clients ou déclenche des actions planifiées.
odoo-bin db dump prod /sauvegardes/prod-test.zip odoo-bin db load prod_restore /sauvegardes/prod-test.zip --neutralize
Si vos sauvegardes reposent sur pg_dump seul, vérifiez que le filestore est copié lui aussi : une base restaurée sans ses pièces jointes s'ouvre, mais les factures PDF et les documents ont disparu. La documentation de déploiement recommande aussi de fermer l'accès au gestionnaire de bases (list_db = False) une fois le serveur en place : faites vos restaurations en ligne de commande plutôt que par l'écran web.
Avant d’appliquer ces conseils : testez chaque manipulation sur une copie de votre base ou sur un serveur de test, jamais directement en production. Ces conseils sont rédigés sans connaître votre configuration et peuvent ne pas s’appliquer tels quels chez vous. Nexelans ne peut pas être tenue responsable des conséquences d’une manipulation faite sans ces précautions.
Ce que le test doit prouver
- La base s'ouvre avec la même version d'Odoo et les mêmes modules.
- Les pièces jointes sont là : ouvrez une facture PDF et un document scanné.
- Les dernières écritures datent bien de la veille de la sauvegarde.
- La copie n'envoie rien : emails, paiements et actions planifiées sont neutralisés.
- Vous connaissez la durée réelle de la restauration, et donc l'interruption à prévoir.
Ce dernier point est celui que l'on oublie. Le jour d'un incident, la direction demandera dans combien de temps l'activité reprend, et la seule réponse honnête est celle que vous aurez chronométrée lors du dernier test. Pour le choix du mode d'hébergement lui-même, le comparatif Odoo.sh, Online ou sur site reste d'actualité.
Sources
- odoo/odoo, commit 5b0c550 (20/08/2026), coût des ventes après retour d'un retour : Voir le commit
- odoo/enterprise, commit 619ba2c (25/08/2026, branche 19.0), annulation partielle d'un rapprochement bancaire
- odoo/enterprise, commits 2cd105c (25/08/2026) et b1a9918 (24/08/2026, branche 19.0), envoi EDI de la déclaration de TVA
- Documentation Odoo.sh 19.0, branches et sauvegardes : Lire la page
- Documentation Odoo 19.0, Odoo Online (dupliquer, télécharger une sauvegarde) : Lire la page
- Documentation Odoo 19.0, ligne de commande (db dump, db load, neutralize) : Lire la page
- Documentation Odoo 19.0, déploiement sur site : Lire la page