Diferencia entre revisiones de «Instal·lar Odoo»
Línea 103: | Línea 103: | ||
== Errors documentats == | == Errors documentats == | ||
<div style="background:#f66;">'''Important''' | |||
Abans de fer aquests comandaments, consulteu el final del fitxer de log, generalment en /var/log/odoo/odoo-server.log | |||
</div> | |||
Si apareix un error similar a: | Si apareix un error similar a: |
Revisión del 11:27 19 sep 2016
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.
Abans de res, es possible que Debian no tinga bé els locales. Es pot fer en:
# dpkg-reconfigure locales
I seleccionar els de es_ES i el de UTF8 per defecte. Cal eixir de sessió i tornar a entrar.
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/9.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.
$ odoo.py -d demodb --addons-path="/var/lib/odoo/modules,./addons" --save
El comandament anterior es deu fer des del directori d'instal·lació d'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
o
# /etc/init.d/odoo stop
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
Pot ser que el nostre usuari odoo tinga una configració personalitzada. En aquest cas, cal fer, per exemple:
/usr/bin/python /usr/bin/odoo.py --config /var/lib/odoo/.openerp_serverrc -d empresa -u modul
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
Per afegir als nostres métodes una eixida de log i facilitar la depurció, es pot utilitzar el api de Odoo:
Al principi del fitxer .py:
from openerp import models, fields, api
import logging
_logger = logging.getLogger(__name__)
Per dins de les funcions:
_logger.debug("Use _logger.debug for debugging purposes, nothing else.")
_logger.info("Use _logger.info for information messages. This is used for notifying about something important.")
_logger.warning("Use _logger.warning for minor issues, which will not crash your module.")
_logger.error("Use _logger.error to report a failed operation.")
_logger.critical("Use _logger.critical for critical message: when this goes off the module will not work anymore.")
#Want to include data from your field? Pass it along in the context, get it from the pool or from the dict.
_logger.critical("The name '" + str(record.get('name')) + "' is not okay for us!")
Errors documentats
Abans de fer aquests comandaments, consulteu el final del fitxer de log, generalment en /var/log/odoo/odoo-server.log
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]
# su postgres $ psql 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';
Pot ser que no es cree el cluster de postgresql. Primer cal reconfigurar els locales y després:
pg_createcluster 9.4 main --start