Acusmatas, agudicen sus sentidos porque estoy a punto de mostrarles la piedra angular de la construcción en ODOO. Si de verdad quieren ser matemáticos de odoo algún día, es crucial que desde el comienzo de sus caminos en esta orden, hagan las cosas, precisamente, de forma ordenada y prolija. Confíen en este viejo, de por si el entorno de trabajo y el orden del código es importante en cualquier tipo de desarrollo, pero es mucho más importante cuando trabajamos con odoo, porque su paradigma demanda la declaración de diversos archivos que cuando no cumplen cierta secuencia, les van a traer grandes dolores de cabeza, máxime si no pueden ver el log y enterarse de que es lo que sucede.

Por todo esto, nosotros recomendamos, para la hora de aprender y desarrollar, el uso intensivo de la tecnología Docker, ya iremos viendo por que lo recomendamos, por ahora tengan fe.

A partir de este momento voy a explicar lo que para nosotros los pitagóricos de odoo es un entorno básico de trabajo.

Manos a la obra

cerrar

Axioma

  • El uso combinado de el IDE, Docker y Filezilla conforman el entorno de trabajo ODOO

* Definición de axioma: Proposición o enunciado tan evidente que se considera que no requiere demostración.

“Con el IDE podré desarrollar, con docker podré logear y con filezilla sincronizar” .Ese debe ser como un cántico para ustedes en el grado de acusmata.

El IDE

No voy a enseñarles a instalar un IDE, porque es una conditio sine qua non para obtener el grado de Acusmata. Solo procuren que el IDE sea compatible con el repositorio de código que van a utilizar, así trabajan de forma mas eficiente y no tienen que meter tanto código en la consola. Ahora bien, si son del tipo de gente que les gusta meter códigos en la consola, yo no soy quien para decirles que están locos.

Docker
cerrar

Primero tienen que decidir qué SO van a utilizar para desarrollar. Si utilizan Windows, les recomiendo que instalen algún virtualizador como VirtualBox y creen una VM con Ubuntu antes de seguir. 

Yo particularmente utilizo Windows para desarrollar y tengo Ubuntu en una maquina virtual en donde luego instalo Docker. Ustedes dirán ¿Para que dos niveles de virtualización? Bueno claramente no usaría esta combinación en un entorno de producción, pero como necesito docker para poder testear y sobre todo para ver el log de odoo en tiempo real, entonces hago esto ya que docker esta naturalmente soportado en un SO Linux.

Recomendaciones si utilizan windows

Bien, ahora que ya tienen un SO con docker andando, instalen Filezilla o cualquier programa que les permita transferir archivos entre su PC de desarrollo y la PC en la que tienen el Linux con docker.

La primera instalación ODOO

Esquema

Vamos a crear una instalación de odoo utilizando la imagen de odoo 10 para docker.

Abrimos la consola de ubuntu, (si están utilizando un virtualizador, les recomiendo instalar algún gestor de conexiones ssh y conectarse de forma “remota” a la virtual, es mas cómodo)  y hacemos lo siguiente.

Primero vamos a crear dos carpetas que utilizaremos de volúmenes para relacionar el container docker con el SO que lo envuelve. Elijan un directorio y creen dos carpetas.

mkdir installation1
mkdir myaddons

La carpeta installation1 contendrá el archivo de configuración del servidor ODOO. La carpeta myaddons contendrá los módulos que iremos desarrollando.

Segundo, creamos un contenedor con postgres (que es el motor de base de datos que utiliza odoo):
docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo --name db_1 postgres:9.4

Tercero, creamos el archivo de configuración de odoo:

nano odoo.conf

Como verán uso el comando nano para abrir y editar un archivo de texto en ubuntu.

Dentro del archivo llamado odoo.conf (en odoo 8 se llamaba openerp-server.conf), van a copiar los siguientes parámetros:
[options]
addons_path = /mnt/extra-addons,/usr/lib/python2.7/dist-packages/odoo/addons
data_dir = /var/lib/odoo
auto_reload = True
log_level = debug

Ejemplo de archivo de configuración

Me interesa, en este momento, que observen que en el parámetro addons_path he colocado un directorio llamado  /mnt/extra-addons el otro valor después de las coma, es el directorio nativo, de donde odoo toma sus propios módulos.

cerrar

En sus tiempos libres pueden profundizar aún mas sobre los parámetros de configuración de odoo, dado que mas adelante haremos mas uso de ellos. (Fuente de conocimiento)

Cuarto, creamos un contenedor con odoo:10.0 y vinculamos las dos carpetas que creamos (ver mas arriba el esquema propuesto en el gráfico):

docker run -v /home/gom/installation1:/etc/odoo -v /home/gom/myaddons:/mnt/extra-addons -p 8070:8069 --name installation1 --link db_1:db -t odoo:10.0

Si son buenos observadores, habrán notado que he generador un vinculo (ver doc. sobre volumes) entre la carpeta myaddons y la carpeta extra-addons, que es la carpeta que he indicado en el archivo de configuración de odoo.

Si todo salió bien, ahora ya tienen su primera instalación de odoo andando y en consola están viendo el log en tiempo real de lo que sucede con el servidor odoo.

cerrar

Es sumamente recomendable utilizar Docker compose cuando se trabaja con contenedores que dependen de otros contenedores.

Cuando quieran dejar de ver el log deben precionar Ctrl + C y para volver a ver el log de un contenedor deben usar el comando logs de docker:

docker logs -f --tail="50" installation1

El parámetro -f le dice que van a ver el “tiempo real” y el parámetro –tail le dice la X cantidad de ultimas lineas del log que quieren ver.

Probando

Para probar que todo esta funcionando deben escribir en su navegador, la IP del SO donde tienen corriendo la reciente instalación de odoo mas el puerto que hemos designado para ese contenedor:

http://xxx.xxx.xxx.xxx:8070

Deberían ver la interfaz de creación de la base de datos de odoo.

¿Ven que fácil es? Esto es solo una prueba del poder que obtendrán si llegan al final de este largo camino.

Tarea para el hogar

Para estar seguros de que han aprendido algo, pueden probar crear una nueva instalación de odoo. Es decir, crear un nuevo container docker, el cual deberá tener otro puerto y apuntar a otro archivo de configuración, la carpeta de addons puede ser común a varios contenedores con odoo.

Esquema propuesto

 

Punto final

Bueno queridos acusmatas, hemos terminado con esta primera instrucción. Les pido que no se queden con lo que acabamos de ver y profundicen el conocimiento consultando insistentemente al oráculo Google.

Nos vemos pronto.