Por que migrar Odoo es tan dificil?

Migrar Odoo es más complejo que implementarlo

Gustavo Orrillo
- 03/04/2022 - 4 min. de lectura

Migrar Odoo no es facil. Y hay una costumbre muy común que es subestimar su complejidad. Por varios motivos, el principal es que muchas veces la gente que lo subestima no lo hizo y no sabe de lo que habla. Creo que en este punto vale reconocer el hecho que AdHoc brinda un servicio de migración con su paquete. Esto habla a las claras del gran valor brindado por la solución de AdHoc.

Hay tres formas de migrar Odoo. La primera es la seguida por OpenUpgrade que actualiza la base de datos y con la cual uno actualiza los módulos personalizados, y eso es todo. No es un mal approach teniendo en cuenta los tiempos involucrados en migrar la base de datos. Tiene el inconveniente que se debe migrar de versión en versión. Por ejemplo si uno esta trabajando con la versión 11.0 y desea pasar a la versión 15.0, uno debe migrar primero a la versión 12 luego a la 13 luego a la 14 para llegar a la versión 15.

La otra manera es hacer una migración básica. La idea es uno migra los datos maestros: clientes, proveedores, empleados, usuarios, cuentas contables, saldos de cuenta corriente, productos, stocks. Y con eso se arranca. Se pierde el detalle transaccional de la historia. Pero se lo realiza de manera rápida. Por lo general esto tarda entre uno y dos meses.

La tercer manera es migrar todos los datos. Que es la opción más compleja y es la que uno muchas veces encara (principalmente porque perder la historia transaccional no es una opción). Migrar la base de datos de Odoo en su totalidad presenta muchos desafíos, de los que vamos a hablar a continuación:

  • El primer inconveniente creo que es de recursos humanos. Migrar Odoo requiere la participación de programadores muy experimentados en Odoo. Esto lo digo porque para migrar Odoo se requiere conocer muy bien no solo el Odoo de origen, sino tambien el de destino. Y me refiero a conocer como funciona internamente (por ejemplo saber que sucede cuando se crea un pago en Odoo 14, se crea tambien un movimiento contable?). Para lo cual se requiere muchos años de experiencia de parte del consultor. Muchas veces tenemos la mala costumbre de asignar a programadores poco experimentados a la tarea de migrar (de la misma manera que lo hacemos para tareas de soporte), y las consecuencias se pagan.

  • Se requiere migrar no solo datos, sino hacer que las transacciones se ejecuten según la lógica de Odoo. Por ejemplo para migrar las facturas pagadas se requiere no solo migrar las facturas. Sino luego confirmar dicha factura, migrar el pago correspondiente, confirmarlo y luego reconciliar el pago junto con la factura. Este escenario tambien se tiene que escalar para otros módulos como puede ser stock, ventas y compras. Entonces esto hace que un proyecto de migración se transforme en un proyecto de migración más un proyecto con la complejidad de un proyecto de interfaces.

  • Un datito no menor, Odoo tiene la costumbre de cambiar las cosas de versión a versión (una vez por año). Algunos son cambios anecdoticos (por ejemplo el modelo product.uom se renombro a uom.uom, o se cambian nombres de campos por ejemplo origina a invoice_origin). Pero a veces son cambios muy importantes en la lógica (por ejemplo en la versión 13 se desechó el modelo account.invoice y se centralizó toda la información contable en el modelo account.move)

  • Un punto a tener en cuenta es la velocidad de procesamiento de Odoo. Para hacer transacciones puntuales la performance de Odoo es satisfactoria. Por ejemplo pare hacer un pedido o validar una factura. Ahora, cuando llega el momento de importar miles de registros y procesar los mismos (por ejemplo confirmando pedidos de venta o facturas). Odoo en esas situaciones es muy lento. El ORM es lento de por si. Es sorprendentemente lento y creo que el mismo necesita ser revisado. El punto aca es, dicha lentitud hace más lento los procesos de migración.

  • Todas las customizaciones necesitan ser migradas. Esto puede llegar a ser problemático si hablamos de la contabilidad y stock, debido a que las mismas suelen tener variaciones en sus estructuras de datos que pueden ser significativas.

  • Los datos en el sistema origen no necesariamente son limpios. O fueron ingresados sin problema en el Odoo original, pero en el Odoo destino estan presentes nuevas validaciones que no hacen viable su procesamiento y obligan a de alguna manera modificar la información siendo migrada.

  • La ventana de procesamiento puede llegar a ser muy larga. A modo de ejemplo, migrando un Odoo multicompañía con cuatro empresas y unas 8,000 facturas (mas contratos, pagos, pedidos de venta) lleva dos días. Entre que corrés los scripts, y te aseguras que estan funcionando bien... se fueron dos días. 

  • Tambien se requiere migrar los módulos custom desarrollados, lo cual implica tiempo. 

  • Muchas veces no es realista la planificación del proyecto. No solo en los tiempos, sino tambien en las tareas de la puesta en marcha, testeo y paralelo. El testeo tiende a ser subestimado. Tambien se subestiman las tareas necesarias para la puesta en marcha del nuevo Odoo, ya que hay muchas tareas manuales que no son tenidas en cuenta (por ejemplo, configuración de la contabilidad o de las múltiples empresas, o de los e-mail templates)

Por eso creo que uno debe realizar las migraciones siempre y cuando sea necesario (no solo porque consumen tiempo sino porque muchas veces son proyectos mas complejos que la implementación de Odoo en si). Los clientes tienden a preguntar por la migración muy seguido. Y la verdad no entiendo de donde sacan esa curiosidad. Hay muchas cosas más urgentes (y con mayor impacto en la contabilidad) que migrar un sistema. Sobre todo un sistema complejo como Odoo.


 


Acerca de:

Gustavo Orrillo

Passionate about programming, he has implemented Odoo for different types of businesses since 2010. In Moldeo Interactive he is a founding Partner and Programmer; In addition to writing on the Blog about different topics related to the developments he makes.