DEV Community

Rafnix Guzmán
Rafnix Guzmán

Posted on • Originally published at blog.rafnixg.dev on

Creando un entorno de desarrollo para Odoo 14.0 con VSCode en Ubuntu 22.04

En este artculo aprenders a configurar un entorno de desarrollo para Odoo 14.0 en Ubuntu 22.04. Si ests leyendo esto, probablemente ya sabes que Odoo es un ERP basado en Python, PostgreSQL y XML que permite a las empresas gestionar sus procesos empresariales de manera integrada.

Antes de empezar con la configuracin del entorno de desarrollo, asegrate de tener instalado los siguientes requisitos previos: Python 3, Git, PostgreSQL y VSCode. Si an no los tienes, puedes seguir los siguientes enlaces para instalarlos:

Una vez que tengas estos requisitos previos instalados, ests listo para empezar a configurar tu entorno de desarrollo de Odoo. En este post, te enseare cmo crear una estructura de carpetas adecuada para trabajar con Odoo y cmo configurar VSCode para poder debuggear el cdigo.

Instalacin de PostgreSQL

Para trabajar con Odoo, necesitars tener instalado PostgreSQL. PostgreSQL es un sistema de gestin de bases de datos relacional de cdigo abierto. Para instalar PostgreSQL en Ubuntu/Debian, puede seguir los siguientes pasos en la terminal:

sudo apt update
sudo apt upgrade
sudo apt install postgresql postgresql-client
sudo -u postgres createuser -s $USER
createdb odoo-dev-14.0

Enter fullscreen mode Exit fullscreen mode
  • sudo apt update: Este comando se utiliza para actualizar la lista de paquetes disponibles en los repositorios de Ubuntu/Debian. Es importante ejecutar este comando antes de instalar cualquier software nuevo en Ubuntu para asegurarse de que se estn utilizando las versiones ms recientes de los paquetes disponibles.

  • sudo apt upgrade: Este comando se utiliza para actualizar los paquetes existentes en el sistema operativo. Al ejecutar este comando, se descargarn e instalarn las actualizaciones disponibles para todos los paquetes instalados en el sistema.

  • sudo apt install postgresql postgresql-client: Estos comandos se utilizan para instalar PostgreSQL y su cliente en el sistema operativo. PostgreSQL es un sistema de gestin de bases de datos relacionales que se utiliza comnmente como base de datos para Odoo.

  • sudo -u postgres createuser -s $USER: Este comando se utiliza para crear un usuario en PostgreSQL con todos los privilegios necesarios para trabajar con Odoo. El comando se ejecuta como el usuario "postgres", que es el usuario por defecto de PostgreSQL. $USER es una variable de entorno que contiene el nombre de usuario actual.

  • createdb odoo-dev-14.0: Este comando se utiliza para crear una nueva base de datos en PostgreSQL llamada "odoo-dev-14.0". Esta ser la base de datos que se utilizar para desarrollar y probar Odoo en este entorno de desarrollo.

Es importante destacar que despus de la instalacin, es necesario realizar algunas configuraciones de seguridad adicionales para garantizar la proteccin de los datos de la empresa. Sin embargo, para fines de este tutorial y dado que nos encontramos en un ambiente de desarrollo, no profundizaremos en este aspecto

Instalacin de dependencias

Antes de empezar a trabajar con Odoo, necesitamos instalar algunas dependencias en nuestro sistema operativo. Para hacerlo, podemos seguir las instrucciones oficiales que recomiendan utilizar los siguientes comandos en la terminal:

sudo apt update
sudo apt upgrade
sudo apt install python3-dev python3-pip python3-venv libxml2-dev \
libxslt1-dev libldap2-dev libsasl2-dev libtiff5-dev \
libjpeg8-dev libopenjp2-7-dev zlib1g-dev libfreetype6-dev \
liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev libxcb1-dev libpq-dev

Enter fullscreen mode Exit fullscreen mode

Estos comandos nos permitirn instalar todas las dependencias necesarias para trabajar con Odoo en nuestro sistema Ubuntu 22.04. Es importante asegurarse de que todas las dependencias se instalen correctamente antes de continuar con la configuracin de nuestro entorno de desarrollo.

Creacin de la estructura de carpetas

Una vez instalado PostgreSQL y las dependencias necesarias, es hora de crear una estructura de carpetas para trabajar con Odoo. Para ello, ejecuta en la terminal el siguiente comando:

mkdir -p ~/Odoo/{src,workspaces,instances,instances/odoo-dev-14.0}

Enter fullscreen mode Exit fullscreen mode

Esta una forma abreviada de crear varias carpetas a la vez utilizando llaves y una lista de nombres de carpeta separados por comas.

En este caso, el comando crea una estructura de carpetas dentro de la carpeta principal del usuario (representado por el smbolo "~" que se refiere al directorio de inicio del usuario) con los siguientes nombres de carpeta:

  • src

  • workspaces

  • instances

  • instances/odoo-dev-14.0

La opcin "-p" indica que se crearn todas las carpetas necesarias en la ruta, incluso si algunas de ellas ya existen. De esta manera, se crea una estructura de carpetas adecuada para trabajar con Odoo y se asegura de que todas las carpetas necesarias estn disponibles en el directorio de inicio del usuario.

Instalacin de Odoo 14.0

Ahora que hemos instalado PostgreSQL, Python y las dependencias necesarias, podemos proceder a instalar Odoo.

Descargar el cdigo fuente de Odoo 14.0

Para descargar el cdigo fuente de Odoo 14.0, ejecuta en la terminal el siguiente comando:

git clone https://github.com/odoo/odoo.git --single-branch --depth 1 --branch 14.0 ~/Odoo/src/14.0

Enter fullscreen mode Exit fullscreen mode

Este comando descargar el cdigo fuente de Odoo 14.0 en la carpeta ~/Odoo/src/14.0.

El parmetro --single-branch indica que solo se clonar la rama especificada en lugar de todas las ramas del repositorio. El parmetro --depth 1 indica que solo se clonar el historial ms reciente del repositorio, lo que reduce el tiempo y espacio necesarios para la descarga.

Crear un entorno virtual

Para crear un entorno virtual de Python para Odoo, ejecute el siguiente comando:

python3 -m venv ~/Odoo/instances/odoo-dev-14.0/venv

Enter fullscreen mode Exit fullscreen mode

Este comando crear un entorno virtual para Odoo en la carpeta ~/Odoo/instances/odoo-dev-14.0/venv.

Instalar las dependencias de Odoo

Para instalar las dependencias de python para Odoo, ejecute los siguientes comandos:

source ~/Odoo/instances/odoo-dev-14.0/venv/bin/activate
pip3 install setuptools wheel inotify psycopg2-binary
pip3 install -r ~/Odoo/src/14.0/requirements.txt
deactivate

Enter fullscreen mode Exit fullscreen mode

Estos comandos activarn el entorno virtual de Odoo, instalarn las dependencias necesarias y desactivarn el entorno virtual.

  1. source ~/Odoo/instances/odoo-dev-14.0/venv/bin/activate: este comando activa el entorno virtual de Odoo para que puedas instalar las dependencias necesarias sin afectar al sistema operativo.

  2. pip3 install setuptools wheel inotify psycopg2-binary: estos son paquetes de Python necesarios para ejecutar Odoo. setuptools y wheel son herramientas de construccin de paquetes, inotify es una biblioteca para monitorear cambios en archivos y directorios, y psycopg2-binary es un controlador de base de datos PostgreSQL para Python.

  3. pip3 install -r ~/Odoo/src/14.0/requirements.txt: este comando instala todas las dependencias adicionales requeridas por Odoo, que estn enumeradas en el archivo requirements.txt. El prefijo -r significa "de un archivo de requisitos".

  4. deactivate: este comando desactiva el entorno virtual de Odoo, lo que significa que ya no se estn utilizando las dependencias instaladas en dicho entorno.

Con estos pasos, hemos instalado Odoo 14.0 en nuestro entorno de desarrollo de Ubuntu 22.04. Ahora podemos empezar a trabajar con Odoo y personalizarlo segn nuestras necesidades.

Crear el archivo de configuracin de Odoo

Despus de haber creado el entorno virtual de Python y haber instalado las dependencias necesarias, el siguiente paso es configurar Odoo para que se ejecute correctamente en el entorno virtual. Para esto, es necesario crear un archivo de configuracin especfico para su instancia de Odoo.

Para crear el archivo de configuracin, ejecute los siguientes comandos:

cp ~/Odoo/src/14.0/debian/odoo.conf ~/Odoo/instances/odoo-dev-14.0 
sed -i 's/db_user = odoo/db_user = '$USER'/' ~/Odoo/instances/odoo-dev-14.0/odoo.conf

Enter fullscreen mode Exit fullscreen mode

El primer comando copia el archivo de configuracin predeterminado de Odoo a la carpeta de su instancia de Odoo. El segundo comando utiliza el comando "sed" para reemplazar el usuario de la base de datos predeterminado de "odoo" por el usuario actual. Esto es necesario para que Odoo pueda acceder a la base de datos en el entorno virtual.

Una vez que haya creado el archivo de configuracin de Odoo, podr personalizarlo para adaptarlo a sus necesidades especficas. Puede configurar la direccin IP, el puerto, la base de datos y otras opciones para su instancia de Odoo si ya tenia una instalacin de PostgreSQL.

Inicializar la base de datos de Odoo

Una vez que se han instalado las dependencias de Odoo y se ha creado el archivo de configuracin, el siguiente paso es inicializar la base de datos de Odoo. Para hacer esto, se utilizar el comando:

~/Odoo/instances/odoo-dev-14.0/venv/bin/python3 ~/Odoo/src/14.0/odoo-bin -c ~/Odoo/instances/odoo-dev-14.0/odoo.conf -d odoo-dev-14.0 -i base --stop-after-init

Enter fullscreen mode Exit fullscreen mode

Este comando ejecuta el archivo odoo-bin que se encuentra en la carpeta src/14.0 del directorio raz de Odoo. El parmetro -c especifica la ruta del archivo de configuracin de Odoo que se cre anteriormente. El parmetro -d especifica el nombre de la base de datos que se crear e inicializar. En este caso, se est utilizando odoo-dev-14.0.

El parmetro -i indica los mdulos de Odoo que se instalarn. En este caso, solo se est instalando el mdulo base de Odoo. Sin embargo, es posible agregar ms mdulos separndolos por comas.

Finalmente, el parmetro --stop-after-init detiene el servidor de Odoo despus de inicializar la base de datos. Esto es til si solo se desea inicializar la base de datos y no ejecutar el servidor completo de Odoo.

Una vez que se ejecuta este comando, se crear y se inicializar la base de datos de Odoo. Este proceso puede tardar unos minutos, dependiendo de la velocidad de su computadora.

Configuracin del debugger de VSCode para Odoo 14.0

Una herramienta til para desarrollar en Odoo es el debugger de Visual Studio Code (VSCode), que permite depurar cdigo en tiempo real. A continuacin, se muestra cmo configurar el debugger de VSCode para trabajar con Odoo 14.0.

  1. Abre Visual Studio Code en la carpta de la instancia ~/Odoo/instances/odoo-dev-14.0/ y haz clic en la pestaa "Debug" en la barra lateral izquierda.

  2. Haz clic en el botn "cree un archivo launch.json" en la parte inferior de la pestaa "Debug".

  3. Copia y pega el siguiente cdigo en el archivo "launch.json" que se ha creado:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "odoo-dev-14.0",
            "type": "python",
            "request": "launch",
            "program": "~/Odoo/src/14.0/odoo-bin",
            "console": "integratedTerminal",
            "args": [
                "-c","~/Odoo/instances/odoo-dev-14.0/odoo.conf",
                "--limit-time-real", "99999",
                "-d", "odoo-dev-14.0"
            ]
        },
        {
            "name": "odoo-dev-14.0-install-addons",
            "type": "python",
            "request": "launch",
            "program": "~/Odoo/src/14.0/odoo-bin",
            "console": "integratedTerminal",
            "args": [
                "-c","~/Odoo/instances/odoo-dev-14.0/odoo.conf",
                "--limit-time-real", "99999",
                "-d", "odoo-dev-14.0",
                "-i","",
                "--stop-after-init"
            ]
        },
        {
            "name": "odoo-dev-14.0-update-addons",
            "type": "python",
            "request": "launch",
            "program": "~/Odoo/src/14.0/odoo-bin",
            "console": "integratedTerminal",
            "args": [
                "-c","~/Odoo/instances/odoo-dev-14.0/odoo.conf",
                "--limit-time-real", "99999",
                "-d", "odoo-dev-14.0",
                "-u","",
                "--stop-after-init"
            ]
        },
        {
            "name": "odoo-dev-14.0-repl",
            "type": "python",
            "request": "launch",
            "program": "~/Odoo/src/14.0/odoo-bin",
            "console": "integratedTerminal",
            "args": [
                "shell",
                "-c","~/Odoo/instances/odoo-dev-14.0/odoo.conf",
                "--limit-time-real", "99999",
                "--xmlrpc-port","8888",
                "--longpolling-port","8899",
                "-d", "odoo-dev-14.0",
                "--shell-interface", "ipython"
            ]
        }
    ]
}

Enter fullscreen mode Exit fullscreen mode
  1. Ahora, puedes elegir una de las siguientes opciones de configuracin del debugger:
  • odoo-dev-14.0: esta opcin inicia Odoo en modo de desarrollo con la base de datos "odoo-dev-14.0".

  • odoo-dev-14.0-install-addons: esta opcin instala los mdulos de Odoo que agregemos al parametro "-i", en la base de datos "odoo-dev-14.0".

  • odoo-dev-14.0-update-addons: esta opcin actualiza los mdulos de Odoo que agregemos al parametro "-u", en la base de datos "odoo-dev-14.0".

  • odoo-dev-14.0-repl: esta opcion inicia Odoo en modo de consola interactiva (REPL) donde puedes ejecutar comandos del ORM

El parametro "--limit-time-real" establece el tiempo mximo permitido para la ejecucin de una solicitud de servidor en Odoo, con un valor de "99999" establece este lmite en un tiempo muy alto, prcticamente ilimitado. Esto es til durante el desarrollo, ya que nos permite depurar el cdigo sin interrupciones debido a la expiracin del tiempo lmite de Odoo

Con la configuracin adecuada, podemos utilizar el debugger de VSCode para solucionar problemas en el cdigo de Odoo y mejorar la calidad del software. Adems, al tener un debugger integrado en su entorno de desarrollo, pueden ahorrar tiempo y mejorar la eficiencia de su trabajo.

Espero que este tutorial haya sido til para aquellos que buscan configurar el debugger de VSCode para trabajar con Odoo 14.0. Si tienes alguna pregunta o comentario, no dudes en escribirme.

Top comments (0)