Agrega un módulo personalizado
Este tutorial te muestra cómo añadir un módulo de Odoo personalizado a tu despliegue de Skysize. Hay dos enfoques según si el módulo se encuentra en un repositorio separado o directamente en el repositorio de tu proyecto.
Tiempo para completarlo: ~15 minutos
Lo que necesitas:
- Un proyecto ya desplegado en Skysize (Despliega tu primera instancia)
- Un módulo de Odoo personalizado (tu propio código, o un módulo comunitario de OCA)
Cómo funcionan los módulos personalizados en Skysize
En cada despliegue, Skysize clona tu repositorio para esa rama y pone su contenido a disposición de Odoo como un directorio de addons personalizado. Odoo descubre un módulo cuando su carpeta (la que contiene __manifest__.py) se encuentra directamente dentro de un directorio del addons path, así que los módulos colocados en la raíz de tu repositorio se detectan automáticamente sin configuración adicional.
Si tus módulos están en un subdirectorio, indicas a Odoo ese directorio con la opción Ruta de addons personalizados de la rama. Si tus módulos están en un repositorio separado, los incorporas como un submódulo de Git y luego añades el directorio del submódulo al custom addons path.
Los módulos personalizados se ponen a disposición en el servidor pero no se instalan automáticamente. Tras el despliegue, debes instalarlos desde el menú Apps de Odoo (consulta Instala el módulo en Odoo más abajo). Una vez instalado, un módulo se actualiza automáticamente en cada despliegue de Actualizar build.
Opción A: Módulo en tu propio repositorio
Usa este enfoque cuando tu módulo personalizado está almacenado directamente dentro del repositorio de tu proyecto.
1. Añade tu módulo al repositorio
Coloca tu módulo en cualquier lugar del repositorio. La estructura más sencilla es en la raíz:
my-odoo-repo/
├── my_module/
│ ├── __manifest__.py
│ └── ...
└── ...
Con esta estructura no se necesita ninguna configuración adicional, Skysize encontrará my_module automáticamente. Haz commit y push, luego pasa directamente a Instala el módulo en Odoo.
Si prefieres mantener los módulos en un subdirectorio:
my-odoo-repo/
├── custom_addons/
│ └── my_module/
│ ├── __manifest__.py
│ └── ...
└── ...
Entonces necesitas configurar el addons path como se describe en el siguiente paso.
2. Configura el custom addons path (solo para subdirectorios)
-
Ve a tu proyecto y abre la pestaña Ramas.
-
Haz clic en tu rama para abrir su configuración.
-
Desplázate hasta la tarjeta Configuración de addons y localiza el campo Ruta de addons personalizados.
-
Introduce la ruta al directorio que contiene tu módulo o módulos. Cada ruta debe comenzar con
/:/custom_addonsPara módulos distribuidos en varios directorios, sepáralos con comas:
/custom_addons,/extra_addons -
Haz clic en Guardar.
El cambio del custom addons path se aplica en el siguiente despliegue. Guarda el campo y luego haz push de un commit (o usa Reconstruir en la rama) para que se aplique la nueva ruta.
Instala el módulo en Odoo
- Abre tu instancia de Odoo.
- Ve a Settings → Apps (activa el modo desarrollador si la aplicación no es visible: Settings → Activate the developer mode).
- Busca tu módulo y haz clic en Install.
Opción B: Módulo en un repositorio separado (submódulo de Git)
Usa este enfoque cuando tu módulo personalizado vive en su propio repositorio, por ejemplo, un módulo comunitario de OCA o un módulo interno compartido entre varios proyectos.
Los submódulos deben apuntar a un repositorio público, accesible por HTTPS, Skysize los obtiene de forma anónima durante el build. Los submódulos que requieren autenticación (repositorios privados, URL de SSH) no son compatibles. Si controlas el código del módulo, puedes incorporarlo directamente en el repositorio de tu proyecto (Opción A).
1. Añade el submódulo
Un submódulo de Git debe añadirse con la línea de comandos git, los editores web de GitHub/GitLab/Bitbucket no pueden crear correctamente la referencia especial del submódulo. En tu clon local del repositorio de tu proyecto, ejecuta:
git submodule add https://github.com/OCA/web.git addons/oca_web
git commit -m "Add OCA web submodule"
git push
Esto registra el repositorio externo en la ruta addons/oca_web y escribe un archivo .gitmodules. Usa una URL HTTPS pública (no una URL de SSH git@…) para que el build pueda obtenerla sin credenciales.
2. Configura el custom addons path en Skysize
Como el submódulo vive en un subdirectorio, indícaselo a Odoo:
-
Ve a tu proyecto y abre la pestaña Ramas.
-
Haz clic en tu rama para abrir su configuración.
-
En la tarjeta Configuración de addons, establece el Ruta de addons personalizados al directorio del submódulo:
/addons/oca_web -
Haz clic en Guardar.
3. Vuelve a desplegar e instala
Haz push de un commit (o usa Reconstruir en la rama) para activar un nuevo despliegue. Una vez que el build tenga éxito, instala el módulo desde el menú Apps de Odoo como se describe más arriba.
Resolución de problemas
El módulo no aparece en el menú Apps
- Asegúrate de que el modo desarrollador esté activado en Odoo (Settings → Activate the developer mode), luego haz clic en Update Apps List.
- Confirma que la carpeta de tu módulo contiene un
__manifest__.pyválido. - Si tu módulo está en un subdirectorio, verifica que el Ruta de addons personalizados esté configurado y coincida con la estructura real de directorios (las rutas distinguen mayúsculas y minúsculas).
- Revisa los logs del despliegue (build) (haz clic en Ver logs) en busca de errores relacionados con la carga de módulos o con una instalación de dependencias fallida.
El directorio del submódulo está vacío tras el despliegue
- Confirma que la URL del repositorio del submódulo es una URL HTTPS pública accesible sin autenticación.
- Verifica que el archivo
.gitmodulesesté en el commit y que la ruta del submódulo sea correcta.
Un módulo se instala pero falta una dependencia de Python
- Añade la dependencia a un archivo
requirements.txten la raíz de tu repositorio. Skysize la instala automáticamente durante el despliegue.