Ce que tu vas apprendre
Database Manager
Créer, dupliquer et supprimer des bases depuis l'interface web Odoo.
pg_dump / pg_restore
Sauvegarder et restaurer des bases en ligne de commande.
Le filestore
Comprendre où sont stockés les fichiers et pourquoi il faut le sauvegarder aussi.
Bonnes pratiques
Organiser ses bases de dev, test et production sans se mélanger.
- Odoo 19 installé et lancé (T01, T02 ou T03)
- Le mot de passe maître (
admin_passwddansodoo.conf) - Accès au terminal avec
psqletpg_dumpdisponibles
Anatomie d'une base Odoo
Une base Odoo est composée de deux parties : la base PostgreSQL (tables) et le filestore (fichiers binaires). Une sauvegarde complète nécessite les deux.
La base PostgreSQL contient les données structurées (~400 tables). Le filestore contient les fichiers binaires (images, PDF, assets).
1 — Le Database Manager
Odoo embarque un gestionnaire de bases accessible à l'adresse :
http://localhost:8069/web/database/manager
Cette page permet de :
| Action | Description |
|---|---|
| Create Database | Crée une nouvelle base vierge (choisir langue, pays, email admin) |
| Duplicate Database | Clone une base existante (données + filestore). Idéal pour créer un environnement de test |
| Delete Database | Supprime définitivement une base et son filestore |
| Backup Database | Télécharge un fichier ZIP contenant le dump SQL + le filestore |
| Restore Database | Restaure une base depuis un fichier ZIP de sauvegarde |
admin_passwd défini dans odoo.conf.
Ce mot de passe ne doit jamais rester à sa valeur par défaut en production.
Si tu l'as perdu, il est en clair dans le fichier de configuration.
[options]
list_db = False
2 — Créer une base de données
Méthode 1 — Via le Database Manager
- Va sur
http://localhost:8069/web/database/manager - Clique Create Database
- Remplis :
- Master Password : ton mot de passe maître
- Database Name :
odoo19_dev - Email : ton email (sera le login admin)
- Password : mot de passe admin
- Language : Français
- Country : ton pays
- Demo data : coche pour avoir des données de démonstration
- Clique Create Database — patiente 30 à 60 secondes
Méthode 2 — En ligne de commande
Plus rapide et scriptable :
# Créer une base avec données de démo
python odoo-bin -c odoo.conf -d odoo19_dev -i base --stop-after-init
# Créer une base SANS données de démo
python odoo-bin -c odoo.conf -d odoo19_dev -i base --without-demo=all --stop-after-init
odoo19_dev— base de développement principaleodoo19_test— base pour les tests manuelsodoo19_demo— base avec données de démo pour les présentationsodoo19_prod— base de production (sur un serveur séparé)
3 — Dupliquer une base
La duplication crée une copie exacte de la base et de son filestore. C'est le moyen le plus sûr de tester un changement sans risquer tes données.
Via le Database Manager
Database Manager → Duplicate Database → choisis la base source et un nom pour la copie.
En ligne de commande
# 1. Créer la copie PostgreSQL
createdb -U odoo19 -T odoo19_dev odoo19_test
# 2. Copier le filestore
# Linux
cp -r /var/lib/odoo/filestore/odoo19_dev /var/lib/odoo/filestore/odoo19_test
# Windows
xcopy /E /I "C:\Users\USER\AppData\Local\OpenERP S.A\Odoo\filestore\odoo19_dev" "C:\Users\USER\AppData\Local\OpenERP S.A\Odoo\filestore\odoo19_test"
-T de createdb utilise la base source comme
template. PostgreSQL copie toutes les tables et données en une seule opération.
C'est beaucoup plus rapide que pg_dump + pg_restore.
4 — Sauvegarder une base
Via le Database Manager (ZIP complet)
Database Manager → Backup → sélectionne la base → format zip → Backup.
Le fichier ZIP contient le dump SQL + le dossier filestore complet. C'est la méthode la plus simple pour une sauvegarde complète.
En ligne de commande (pg_dump)
# Sauvegarde SQL custom (compressée, la plus courante)
pg_dump -U odoo19 -Fc odoo19_dev > /backups/odoo19_dev_$(date +%Y%m%d).dump
# Sauvegarde SQL texte (lisible, utile pour le debug)
pg_dump -U odoo19 odoo19_dev > /backups/odoo19_dev_$(date +%Y%m%d).sql
# Windows (PowerShell)
pg_dump -U odoo19 -Fc odoo19_dev > C:\backups\odoo19_dev.dump
pg_dump ne sauvegarde que
les données PostgreSQL. Les fichiers binaires (images, pièces jointes, PDF)
sont dans le filestore. Pour une sauvegarde complète :
# Sauvegarde complète (SQL + filestore)
pg_dump -U odoo19 -Fc odoo19_dev > /backups/odoo19_dev.dump
tar czf /backups/odoo19_dev_filestore.tar.gz /var/lib/odoo/filestore/odoo19_dev/
Où est le filestore ?
| Système | Chemin par défaut |
|---|---|
| Linux (systemd) | /var/lib/odoo/filestore/NOM_BASE/ |
| Linux (dev) | ~/.local/share/Odoo/filestore/NOM_BASE/ |
| Windows | C:\Users\USER\AppData\Local\OpenERP S.A\Odoo\filestore\NOM_BASE\ |
| Docker | /var/lib/odoo/filestore/NOM_BASE/ (volume odoo-data) |
data_dir dans odoo.conf
définit le répertoire parent du filestore. Si tu l'as modifié, le filestore sera
dans <data_dir>/filestore/NOM_BASE/.
5 — Restaurer une base
Via le Database Manager
Database Manager → Restore Database → upload le fichier ZIP → choisis un nom pour la base restaurée → Restore.
En ligne de commande (pg_restore)
# 1. Créer une base vide
createdb -U odoo19 odoo19_restored
# 2. Restaurer le dump
pg_restore -U odoo19 -d odoo19_restored /backups/odoo19_dev.dump
# 3. Restaurer le filestore
tar xzf /backups/odoo19_dev_filestore.tar.gz -C /
# ou copier directement
cp -r /backups/filestore/odoo19_dev /var/lib/odoo/filestore/odoo19_restored
createdb -U odoo19 odoo19_restored
psql -U odoo19 -d odoo19_restored -f /backups/odoo19_dev.sql
6 — Supprimer une base
Via le Database Manager
Database Manager → Delete → sélectionne la base → entre le mot de passe maître → confirme. Odoo supprime la base PostgreSQL et le filestore.
En ligne de commande
# 1. S'assurer qu'aucune connexion n'est active
# (arrête Odoo s'il est connecté à cette base)
# 2. Supprimer la base PostgreSQL
dropdb -U odoo19 odoo19_test
# 3. Supprimer le filestore
rm -rf /var/lib/odoo/filestore/odoo19_test
7 — Commandes PostgreSQL utiles
| Commande | Description |
|---|---|
psql -U odoo19 -l | Lister toutes les bases de données |
psql -U odoo19 -d odoo19_dev | Se connecter à une base en mode interactif |
\dt | (dans psql) Lister toutes les tables |
\d sale_order | (dans psql) Voir la structure d'une table |
\q | (dans psql) Quitter |
SELECT count(*) FROM res_partner; | Compter les contacts |
SELECT datname, pg_size_pretty(pg_database_size(datname)) FROM pg_database; | Taille de chaque base |
bin de PostgreSQL au PATH :
C:\Program Files\PostgreSQL\16\bin. Utilise ensuite -U postgres
ou -U odoo19 avec l'option -W pour forcer la saisie du mot de passe.
8 — Bonnes pratiques
| Règle | Pourquoi |
|---|---|
| Sauvegarde avant chaque migration | Un -u qui échoue peut corrompre la base. Avec un backup, tu reviens à l'état précédent en 30 secondes |
| Duplique pour tester | Ne teste jamais un nouveau module sur ta base de dev principale. Duplique d'abord |
| Nomme clairement tes bases | Inclue la version Odoo et l'usage : v19_dev, v19_test_helpdesk |
| Nettoie régulièrement | Les bases de test s'accumulent vite. Supprime celles dont tu n'as plus besoin |
| Sauvegarde = SQL + filestore | Un pg_dump seul ne suffit pas. Sans le filestore, tu perds les images et pièces jointes |
| Désactive le Database Manager en prod | list_db = False dans odoo.conf empêche l'accès non autorisé |
Récapitulatif
| Opération | Database Manager | Ligne de commande |
|---|---|---|
| Créer | Create Database | odoo-bin -d nom -i base --stop-after-init |
| Dupliquer | Duplicate | createdb -T source copie + copie filestore |
| Sauvegarder | Backup (ZIP) | pg_dump -Fc + tar czf filestore |
| Restaurer | Restore (ZIP) | createdb + pg_restore + copie filestore |
| Supprimer | Delete | dropdb + rm -rf filestore |
Pour aller plus loin
- Sauvegardes automatiques : programme un
cronqui lancepg_dumpchaque nuit (article T20 de cette série) - pgAdmin : interface graphique pour explorer et gérer tes bases PostgreSQL (installé avec PostgreSQL sur Windows)
- dbfilter : dans
odoo.conf, le paramètredbfilter = ^odoo19_dev$restreint Odoo à une seule base (plus de page de sélection)
Liens utiles
Télécharge le Guide Technique Odoo 19
Architecture, pièges v19, checklist premier module — tout dans un PDF gratuit.
Télécharger le guide← Architecture technique Article suivant de la série : Modèles de base Odoo 19 →