Diferencia entre revisiones de «Instal·lar Odoo»

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda
Línea 16: Línea 16:
  # dpkg-reconfigure locales
  # dpkg-reconfigure locales
I seleccionar els de es_ES i el de UTF8 per defecte. Cal eixir de sessió i tornar a entrar.
I seleccionar els de es_ES i el de UTF8 per defecte. Cal eixir de sessió i tornar a entrar.
Si dpkg-reconfigure no mostra un asistent, pots fer:
# locale-gen "es_ES.UTF-8"
# dpkg-reconfigure locales


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

Revisión del 13:40 24 mar 2017

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.

Si dpkg-reconfigure no mostra un asistent, pots fer:

# locale-gen "es_ES.UTF-8"
# dpkg-reconfigure locales

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

Captures del procés

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.

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

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

Important

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