Odoo no tiene de serie ningún sistema de actualizaciones incluido de forma que puedas cambiar fácilmente de una versión a otra del core, así que cuando sale una nueva versión de Odoo, al menos que te pases a la versión Enterprise (de pago), te lo tienes que currar un poco.
Los modulos si que suelen implementar un sistema automático para actualizarse cuando hay actualización, pero para la versión principal eso ya son palabras mayores.
Por suerte la comunidad Odoo tiene un proyecto llamado OpenUpgrade en github que intenta suplir este vacío. Ojo, solo cubre los módulos oficiales, si otros módulos a mayores, estos no los tocará, tendrás que revisarlos a mano.
Proceso
Bueno en resumen si tienes mucha suerte, solo tienes que hacer esto en la maquina donde tengas la versión antigua:
Bajas el fichero de migración:
wget https://raw.githubusercontent.com/OCA/OpenUpgrade/HEAD/scripts/migrate.py
y ejecutas el migrador, que te va a crear una nueva base de datos terminada en «_migrated» con la estructura migrada:
python migrate.py --config=/etc/odoo-server.conf --database=BD_antigua --run-migrations=versión_a_la_que_pasas
–config es la ruta del fichero de configuración del servidor antiguo.
–database es el nombre de la base de datos antigua.
–version es la versión a la que quieres migrar.
Importante: El proceso se ejecuta en el servidor antiguo y crea una nueva base de datos migrada, que luego tendrás que exportar e importar en el servidor con la nueva versión.
Problemas que me he encontrado
Como el postgres tiene un ferreo control de como puedes acceder, al ejecutar el proceso me devolvia el error:
connection_factory=connection_factory, async=async)
psycopg2.OperationalError: FATAL: Peer authentication failed for user «odoo»
Para los que ya sepan configurar Postgres sabran que es que hay que habilitar el acceso de Unix en el fichero de postgress
pg_hba.conf
en mi caso con ubuntu:
nano /etc/postgresql/9.3/main/pg_hba.conf
y modificar el fichero con:
local all all trust
host all 127.0.0.1/32 trust
reinciar el postgres para que tome efecto:
sudo service postgres restart
después ya me funcionó correctamente el script.
Felix Flores says
Hola Buen día… es valido para migar de Odoo 9 a la versión 10?
Jesus Carballo says
No lo he probado aún, pero en la documentación del proyecto dice que ya está dispobible.
https://doc.therp.nl/openupgrade/modules90-100.html
Juan Pelayo says
Hola, conseguí una aplicación para comunicarse con mercado libre, pero dice que está hecha para la versión 8 y 9, yo tengo la 10 en mi servidor, hay alguna manera de poder pasar la aplicación a la versión 10
Jesus Carballo says
Hola, cada módulo accede a la estructura de datos de la base de datos como esta en una versión en concreto. Hay muchas cosas que no cambian y otras que si. Hay que probarlo y revisar el código del módulo, no queda otra.
Johann says
Hola, ante todo gracias por el Post. Tengo una duda, tengo que ir migrando version a version o puedo saltar de v7 a v10 por ejemplo?
Jesus Carballo says
Me temo que tienes que ir de una en una.
Johann says
Hola buenos dias, ahora me surgio esta pregunta, segun he leido en la documentacion eso solo funciona hasta v9, has probado a hacerlo hasta la v10 ?
Jesus Carballo says
Aún no.
Juan Carlos says
¿A qué versión me recomienda migrar desde la 8? ¿9, 10 u 11?
root says
A la última por supuesto, pero tendras que pasar por las intermedias. Depende del caso igual te puede valer instalar la última y solo importar via ficheros lo mas importante.
root says
De migrar yo siempre pasaría a la última. En Odoo las ultimas versiones son muy estables.
Juan Carlos says
Hola
Estoy en vuestro caso, migrando de 8 >> 9 >> 10 >> 11 y me sugr euna duda. He seguido todos los pasos, pero me da el error de que no encuentra el import openerp.
¿Es necesario tener instalado Odoo 8 o 9 en el mismo servidor donde ejecuto la migración? Solo tengo el Postgres