odoo-local/docs/Odoo local.md

3.8 KiB

Odoo local

Initialiser les modules enterprise

odoo -i web_enterprise -d odoo --stop-after-init

Commandes Docker utiles

accéder à la cli dans un conteneur

(bash peut-être remplacé par shell ou autre)

docker-compose exec web bash

entrer une commande odoo-bin (ajouter options si nécessaire)

 docker-compose exec web odoo {command} -d {database} --db_host db --db_password odoo

Attention car ça marche pas toujours bien en fait, notamment pour la prise en compte de certaines modifications dans le code des modules. Avant de piquer d'énormes crise de nerf, essayer de redémarrer totalement les services en passant la commande dans le champ command du docker-compose.

Afficher les logs debug

odoo {OPTIONS} --log-level debug

Trouver le répertoire Odoo dans un volume Docker

Le chemin du répertoire Odoo dans un volume Docker, en assumant qu'il s'agit d'une image docker officielle Debian est:

/usr/lib/python3/dist-packages/odoo

Et le chemin pour trouver le volume Docker:

/var/lib/docker/volumes/{VOLUME}/_data

Importer base de prod en local

Récupérer et télécharger un dump via Odoo.sh, s'assurer qu'il est neutralisé (+ sans FS pour plus de légèreté).

Démarrer odoo en local. Le fichier odoo.conf doit avoir les options suivantes:

; db_name = ### désactivé
dbfilter = .*

Puis se rendre sur http://localhost:8069/web/database/manager et importer le dump téléchargé. Attendre que le manager ait fini de charger. Il affichera vraisemblablement une erreur "La DB existe déjà". Redémarrer le serveur et la BDD:

docker-compose down && docker-compose up -d

On veut ensuite sans doute suivre les étapes pourchanger le mdp admin.

Changer mdp admin

memo : hash du mdp "admin" :

$pbkdf2-sha512$25000$ltIag3AOIWSsNaZ0rpUSog$9rPi2ZoQiulRtZK44PSTaK4YuDw.VDHvXpubCWLljK4Ibmt5vYhH5lDAFnKZKuW8HDttGyd.TxxFHLxIOUEpDA

Depuis un terminal

docker-compose exec db bash
psql -U {DB_USER} -d {DB_NAME}

Depuis un terminal lancé dans l'Onglet "Services"de PyCharm, avec la config "Odoocker"

psql -h db -U {DB_USER} -d {DB_NAME}

Vérifier qui est admin

SELECT id, login FROM res_users;
UPDATE res_users SET password='$pbkdf2-sha512$25000$ltIag3AOIWSsNaZ0rpUSog$9rPi2ZoQiulRtZK44PSTaK4YuDw.VDHvXpubCWLljK4Ibmt5vYhH5lDAFnKZKuW8HDttGyd.TxxFHLxIOUEpDA' WHERE login = 'admin';

Coincé ? \q pour quitter psql et exit pour quitter le bash :)

Depuis VSCodium

Avec un module type "Database client JDBC", configurer la connexion, se connecter à la DB et changer directement le mdp dans la table res_users (attention à bien insérer le hash et non le mdp en clair)

Tests unitaires

Tester en local

Pour lancer des tests unitaires en local, lancer un bash (docker-compose exec web bash)

Puis cibler le test avec test-tags. La syntaxe est /module :Classe .fonction. Ex :

odoo --db_host db --db_password odoo -d odoo --test-tags /base:TestReports.test_reports

Note : le module doit être installé et à jour pour pouvoir lancer des tests dessus. Il est possible de conjuguer --test-tags avec -i et -u (cette dernière option étant particulièrement utile lorsqu'on debug les tests).

Troubleshooting

Mes modules custom ne s'affichent pas

Vérifier que les modules sont bien dans le répertoire des modules custom et que celui-ci est ajouté au PATH dans odoo.conf, et au contenaire via docker-compose.yml

Vérifier les permissions de fichiers. Les répertoires doivent être en drwxr-xr-x et les fichiers en rwxr--r--. Pour réparer les permissions:

chmod -R 744 {module}/
chmod 755 {module}/
chmod -R 755 {module}/*/