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.