Instal·lar Odoo

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda

Odoo pot ser instal·lat en qualsevol sistema operatiu. No obstant, es desenvolupa pensant en Ubuntu o Debian i és el sistema en el que anem a treballar.

Instal·lar en Debian

Abans de res, cal preparar un poc el sistema:

  • Instal·lar el comandament sudo
  • Crear un usuario odoo:
# useradd -m -g sudo -s /bin/bash -d /var/lib/odoo odoo
# passwd odoo
# groupadd odoo
# usermod -g odoo odoo

En el cas de Ubuntu o Debian, que és el que ens interessa, Odoo proporciona uns repositoris anomenats Nightly, que poden ser afegits al sources.list per instal·lar de manera automàtica tot. Aquests respositoris són actualitzats cada nit. Per tant, és possible que al llarg del temps, algunes funcions o arxius canvien si actualitzem.

Enllaç als repositoris: https://nightly.odoo.com/

I com en el propi manual diu, es pot fer tot en aquests comandaments:

# wget -O - https://nightly.odoo.com/odoo.key | apt-key add -
# echo "deb http://nightly.odoo.com/8.0/nightly/deb/ ./" >> /etc/apt/sources.list
# apt-get update && apt-get install odoo


A continuació, cal anar a la direcció en el navegador:

http://<ip o url>:8069

Creació de una base de dades

En l'usuari de odoo, creem una base de dades i li apliquem l'esquema de dades de Odoo:

$ createdb --encoding=UTF-8 --template=template0 testdb
$ odoo.py -d testdb

Aixó crea una base de dades amb les dades de prova per començar a treballar.

Per defecte, l'usuari serà admin amb contrasenya admin.

Configuració de la ruta dels mòduls

La configuració del servidor Odoo té una opció que es diu addons-path. Nosaltres poden afegir més rutes per als nostres addons personalitzats. Es pot deixar de manera definitiva en el fitxer de configuració o iniciar el servidor indicant quina és la ruta dels addons:

$ odoo.py -d demodb --addons-path="<ruta>"

Si volem que quede guardat de manera definitiva, cal afegit --save al comandament.

L'opció --save guarda la configuració en $HOME/.openerp_serverrc, que és un fitxer per a l'usuari odoo. Si volem que siga per a tots els usuaris que puguen executar el servidor odoo, es pot ficar en el fixter de /etc/odoo

Depurar Odoo

Per crear mòduls o vorer els problemes que estan passant, cal llegir els fitxers de log, però hi ha una manera més eficient de fer-ho. Si observem el comandament que, realment, està executant odoo:

/usr/bin/python /usr/bin/odoo.py --config /etc/odoo/openerp-server.conf --logfile /var/log/odoo/odoo-server.log

Podem observar que diu que --logofile va a un fitxer. Si parem el servici amb:

# systemctl stop odoo

Podem iniciar sessió amb l'usuari odoo (cal fer que puga iniciar sessió en Linux) i executar:

/usr/bin/python /usr/bin/odoo.py --config /etc/odoo/openerp-server.conf

D'aquesta manera, en temps real, va apareguent els missatges que dona el servidor.

Si volem, amés, actualizar un mòdul al arrancar, podem especificar quina base de dades i quin mòdul a actualitzar:

/usr/bin/python /usr/bin/odoo.py --config /etc/odoo/openerp-server.conf -u mòdul -d empresa

Amés, podem modificar el nivell de log amb l'opció --log-level, per exemple: --log-level=debug

Per saber més, pots anar a l'ajuda:

$ odoo.py --help

O a aquesta web: https://www.odoo.com/documentation/8.0/reference/cmdline.html

Errors documentats

Si apareix un error similar a:

OperationalError: FATAL:  no existe el rol «odoo»
OperationalError: FATAL:  role "odoo" does not exist

Cal fer el comandament:

su - postgres -c "createuser -s odoo"

Això crea l'usuari odoo amb permís de superusuari (-s)


Moltes vegades, al instal·lar, no configura el template0 de la base de dades en utf-8. [1]

Es soluciona esborrant i tornant a crear la base de dades template1 utilitzant la codificació UTF8. [2]


 $ psql -U postgres
 postgres=# update pg_database set datallowconn = TRUE where datname = 'template0';
 postgres=# \c template0
 template0=# update pg_database set datistemplate = FALSE where datname = 'template1';
 template0=# drop database template1;
 template0=# create database template1 with template = template0 encoding = 'UTF8';
 template0=# update pg_database set datistemplate = TRUE where datname = 'template1';
 template0=# \c template1
 template1=# update pg_database set datallowconn = FALSE where datname = 'template0';