Référence

Mémo des commandes Odoo

Ce mémo ne remplace pas la procédure de votre environnement. Il rassemble uniquement les opérations qui passent réellement par la ligne de commande Odoo.

Adaptez le préfixe, pas l'intention

odoo-bin représente ci-dessous la commande de lancement validée avec votre environnement. Elle peut commencer par un chemin, par Python ou par l'outil de votre conteneur. ma_base_exercice et custom_addons représentent votre base et votre dossier d'addons réels.

Créer le squelette d'un module

Choisissez une seule option. Sur un hôte installé depuis les sources, une commande abrégée comme odoo-bin peut fonctionner parce que le fichier et son environnement Python sont accessibles sur l'hôte. Avec Docker, l'exécutable odoo et l'environnement Python se trouvent dans le conteneur.

Installation depuis les sources

Depuis la racine du workspace :

Linux/macOS
.venv/bin/python src/odoo/odoo-bin scaffold training_hello custom_addons
PowerShell
.\.venv\Scripts\python.exe .\src\odoo\odoo-bin scaffold training_hello .\custom_addons

À observer : Odoo crée custom_addons/training_hello/ dans le workspace.

macOS + Docker Desktop : vérifier l'environnement

Cette séquence concerne uniquement macOS avec Docker Desktop. Elle ne remplace pas une installation Odoo depuis les sources et ne suppose pas que Docker soit le choix de chaque participant.

1 · Vérifier la présence du CLI Docker
command -v docker

À observer : la commande affiche un chemin vers docker. Si elle n'affiche rien, le CLI n'est pas accessible depuis ce terminal ; passez à l'étape suivante.

2 · Ajouter Docker Desktop au PATH, une seule fois
grep -qxF 'export PATH="/Applications/Docker.app/Contents/Resources/bin:$PATH"' ~/.zshrc || echo 'export PATH="/Applications/Docker.app/Contents/Resources/bin:$PATH"' >> ~/.zshrc

À observer : la ligne est ajoutée à ~/.zshrc seulement si elle n'y figure pas déjà. Elle rend le CLI et son helper visibles dans les prochains terminaux.

3 · Recharger la configuration puis vérifier la version
source ~/.zshrc
docker --version

À observer : le prompt revient après source, puis docker --version affiche une version. Si docker reste introuvable, arrêtez-vous et vérifiez le chemin de Docker Desktop avant de poursuivre.

Docker n'est pas démarré

4 · Distinguer le CLI du service Docker Desktop
docker info

À observer : si vous voyez les informations du serveur, Docker Desktop fonctionne. Si vous voyez Cannot connect to the Docker daemon, le CLI est présent mais le service n'est pas démarré.

Ouvrez Docker Desktop normalement depuis Finder ou Launchpad. Comme équivalent facultatif dans le terminal, utilisez open -a Docker. Attendez que Docker Desktop indique qu'il est prêt, puis relancez docker info. Si la commande échoue encore, arrêtez-vous et demandez un diagnostic de Docker Desktop.

5 · Reprendre uniquement le démarrage Odoo documenté
docker compose up -d

À observer : Compose affiche les services démarrés sans erreur. Utilisez cette commande depuis le dossier qui contient votre fichier Compose ; ne lancez pas un autre projet Docker par approximation.

Docker Compose

Depuis le dossier qui contient le fichier Compose :

Créer le module dans le bind mount des addons
docker compose exec odoo odoo scaffold training_hello /mnt/custom_addons

Le premier odoo est le nom courant du service Compose ; remplacez-le uniquement si votre service porte un autre nom. Le second est l'exécutable de l'image officielle. /mnt/custom_addons est le chemin interne du conteneur qui correspond au dossier local custom_addons/.

Vérifier le résultat sans le modifier
docker compose exec odoo ls -ld /mnt/custom_addons/training_hello

À observer : le module apparaît dans votre dossier local custom_addons/training_hello/. Le chemin /mnt/custom_addons n'est qu'un repère interne au conteneur.

Suivre les logs pendant une mise à niveau

Depuis le même dossier Compose, gardez le journal du service Odoo ouvert lorsque vous installez ou mettez à niveau un module :

Docker Compose · service Odoo
docker compose logs --tail=200 -f odoo

À observer : les 200 dernières lignes s'affichent, puis les nouvelles lignes restent visibles. Cherchez la première ligne qui mentionne votre module, votre fichier XML ou l'erreur qui suit. Arrêtez l'affichage avec Ctrl/Cmd + C. Remplacez odoo uniquement si votre fichier Compose donne un autre nom au service.

Une seule création suffit

Le scaffold ne contacte pas la base et n'installe pas le module. Si training_hello/ existe déjà, ne relancez pas la commande. Avec Docker, une erreur de permission signale un bind mount non inscriptible : corrigez l'environnement sans appliquer de sudo ou de chmod à l'aveugle.

Le nom technique reste en minuscules, sans espace ni accent.

Installer un module par la CLI

Odoo arrêté · terminal configuré
odoo-bin -d ma_base_exercice -i training_hello --stop-after-init

-d choisit la base, -i installe le module et --stop-after-init arrête le processus lorsque l'opération est terminée. Relancez ensuite Odoo avec la procédure de votre environnement.

Mettre un module à niveau par la CLI

Odoo arrêté · terminal configuré
odoo-bin -d ma_base_exercice -u training_hello --stop-after-init

-u recharge le module déjà installé. Utilisez cette opération après une modification du manifeste, de données XML ou CSV, des vues, des droits d'accès ou des modèles.

Préférez l'interface pendant le cours

Les étapes indiquent quand utiliser Apps pour installer ou mettre à niveau le module. Les commandes ci-dessus servent de référence lorsque votre environnement ou votre diagnostic exige la CLI.