Se rendre au contenu

Gestion des bases de données Odoo 19

Bloc 2 · Environnement dev — Article 4/4 Gestion des bases de données Odoo 19 Créer, dupliquer, sauvegarder, restaurer — les opérations que tu feras des…
26 avril 2026 par
Gestion des bases de données Odoo 19
B.Mustapha

Bloc 2 · Environnement dev — Article 4/4

Gestion des bases de données Odoo 19

Créer, dupliquer, sauvegarder, restaurer — les opérations que tu feras des centaines de fois en développement. On couvre le Database Manager d'Odoo et les commandes PostgreSQL en ligne.

~14 minutes de lecture

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.

Prérequis
  • Odoo 19 installé et lancé (T01, T02 ou T03)
  • Le mot de passe maître (admin_passwd dans odoo.conf)
  • Accès au terminal avec psql et pg_dump disponibles

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.

Anatomie d'une base Odoo 19 : PostgreSQL + Filestore + Sauvegarde

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 DatabaseCrée une nouvelle base vierge (choisir langue, pays, email admin)
Duplicate DatabaseClone une base existante (données + filestore). Idéal pour créer un environnement de test
Delete DatabaseSupprime définitivement une base et son filestore
Backup DatabaseTélécharge un fichier ZIP contenant le dump SQL + le filestore
Restore DatabaseRestaure une base depuis un fichier ZIP de sauvegarde
Le mot de passe maître — Toutes les opérations du Database Manager nécessitent le 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.
Désactiver le Database Manager en production — Pour des raisons de sécurité, désactive cette page en production :
[options]
list_db = False
Cela masque la liste des bases et bloque l'accès au Database Manager.

2 — Créer une base de données

Méthode 1 — Via le Database Manager

  1. Va sur http://localhost:8069/web/database/manager
  2. Clique Create Database
  3. 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
  4. 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
Convention de nommage recommandée
  • odoo19_dev — base de développement principale
  • odoo19_test — base pour les tests manuels
  • odoo19_demo — base avec données de démo pour les présentations
  • odoo19_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"
L'option -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 zipBackup.

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
N'oublie pas le filestore ! Le 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/
WindowsC:\Users\USER\AppData\Local\OpenERP S.A\Odoo\filestore\NOM_BASE\
Docker/var/lib/odoo/filestore/NOM_BASE/ (volume odoo-data)
Astuce — Le paramètre 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
Restaurer un dump SQL texte (.sql)
createdb -U odoo19 odoo19_restored
psql -U odoo19 -d odoo19_restored -f /backups/odoo19_dev.sql
Attention au nom du filestore — Le dossier filestore doit porter le même nom que la base. Si tu restaures sous un nom différent, renomme le dossier filestore en conséquence, sinon les images et pièces jointes ne s'afficheront pas.

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
Irréversible — La suppression est définitive. Assure-toi d'avoir une sauvegarde avant de supprimer une base qui contient des données utiles.

7 — Commandes PostgreSQL utiles

Commande Description
psql -U odoo19 -lLister toutes les bases de données
psql -U odoo19 -d odoo19_devSe 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
Windows — Ajoute le dossier 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éerCreate Databaseodoo-bin -d nom -i base --stop-after-init
DupliquerDuplicatecreatedb -T source copie + copie filestore
SauvegarderBackup (ZIP)pg_dump -Fc + tar czf filestore
RestaurerRestore (ZIP)createdb + pg_restore + copie filestore
SupprimerDeletedropdb + rm -rf filestore

Pour aller plus loin

  • Sauvegardes automatiques : programme un cron qui lance pg_dump chaque 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ètre dbfilter = ^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 Odoo 19
Bloc 2 · Environnement dev — Article 3/4 Architecture technique Odoo 19 MVC, ORM, cycle de requête, structure d'un module — on pose les fondations théoriques…