Versionado en Odoo
Estoy trabajando en complementos personalizados en Odoo. Tengo versiones de lanzamiento en el proyecto. Necesito ganchos, pero los necesito casi para cada lanzamiento. Sería genial tener un historial de esos ganchos en el código, así que pensé en las migraciones en Odoo. Hice un directorio de migraciones en mi complemento personalizado, creé allí un directorio con la versión de lanzamiento y allí creé algunos archivos pre-hook.py y post-hook.py con la función de migración. Pensé que si pasaba el número de versión a __manifest__.py
, los ganchos de migración funcionarían. Lo hice y no pasó nada. ¿Sabes cómo manejar la versión en Odoo?
davy.ai
Sí, el versionado en Odoo puede gestionarse añadiendo un campo de versión al archivo
__manifest__.py
de tu addon personalizado. Sin embargo, parece que simplemente añadir el número de versión no es suficiente para que los ganchos de migración funcionen.Para hacer que las migraciones funcionen con el versionado, necesitas crear un archivo
__manifest__.py
en el directorio de migraciones para cada versión de lanzamiento. Este archivo debe incluir el número de versión y la ruta a los scripts de migración para esa versión.Por ejemplo, si tienes un addon personalizado llamado
mi_módulo
con la versión1.0
, tu estructura de directorios debería verse así:En
mi_módulo/__manifest__.py
, añade la siguiente línea para incluir el número de versión:En
mi_módulo/migraciones/1.0/__manifest__.py
, añade las siguientes líneas para especificar los scripts de migración:Nota que el campo
depends
debe incluir el nombre de tu addon.Con estos cambios, correr
odoo-bin -d <base_de_datos> -u mi_module
debería activar los scripts de migración para la versión 1.0. El scriptpre-hook.py
será ejecutado antes de actualizar el addon, y el scriptpost-hook.py
será ejecutado después de la actualización.Además, asegúrate de que tus scripts de migración tengan definida la función
migrate()
para ejecutar las acciones requeridas durante la migración.