Error al migrar de V12 a V13

234 views
Skip to first unread message

Francisco F.

unread,
Dec 17, 2021, 11:22:42 AM12/17/21
to Usuarios Odoo / OpenERP en España
Buenas este es un error que está registrado y entiendo que solventado en https://github.com/OCA/OpenUpgrade/issues/2339 pero no entiendo por qué me sale a mi entonces en esta instalación.

Me he asegurado que tengo:
- Actualizado openupgradelib
- Actualizado OpenUpgrade 13.0
- Actualizados todos los módulos de la OCA utilizados en la BD
- Actualizada la BD de V12 con últimos cambios

Alguna idea? Porque tal vez sea algo que tenga delante y no lo estoy viendo.

El error que obtengo:
2021-12-17 15:55:38,462 25615 ERROR odoo13 odoo.sql_db: bad query:
            UPDATE ir_model_fields
            SET name = 'notified_partner_ids'
            WHERE name = 'needaction_partner_ids'
                AND model = 'mail.message'

ERROR: duplicate key value violates unique constraint "ir_model_fields_name_unique"
DETAIL:  Key (model, name)=(mail.message, notified_partner_ids) already exists.

2021-12-17 15:55:38,463 25615 ERROR odoo13 OpenUpgrade: mail: error in migration script mail/migrations/13.0.1.0/pre-migration.py: duplicate key value violates unique constraint "ir_model_fields_name_unique"
DETAIL:  Key (model, name)=(mail.message, notified_partner_ids) already exists.

2021-12-17 15:55:38,463 25615 ERROR odoo13 OpenUpgrade: duplicate key value violates unique constraint "ir_model_fields_name_unique"
DETAIL:  Key (model, name)=(mail.message, notified_partner_ids) already exists.

Traceback (most recent call last):
  File "/opt/odoo/openupgrade13/OpenUpgrade/odoo/modules/registry.py", line 60, in __new__
    return cls.registries[db_name]
  File "/opt/odoo/openupgrade13/OpenUpgrade/odoo/tools/func.py", line 69, in wrapper
    return func(self, *args, **kwargs)
  File "/opt/odoo/openupgrade13/OpenUpgrade/odoo/tools/lru.py", line 44, in __getitem__
    a = self.d[obj].me
KeyError: 'odoo13'

cubells

unread,
Dec 20, 2021, 1:43:14 AM12/20/21
to openerp-s...@googlegroups.com
El 17/12/21 a les 17:22, Francisco F. ha escrit:
El error lo que dice es que ya existe la columna en la tabla.

Openupgrade intenta renombrar varios campos en este script y por lo que
sea, tu base de datos, ya tiene ese campo definido.

En concreto:

https://github.com/OCA/OpenUpgrade/blob/13.0/addons/mail/migrations/13.0.1.0/pre-migration.py#L14

Borra esa línea y se ejecutarà el script sin error porque no te hace
falta a ti.

Si te pasa con ese campo, te puede pasar con más campos, pero el proceso
para evitarlo ya sabes cuál es.

Lo ideal es que openupgrade hiciera antes una comprobación de si la
columna existe antes de renombrar. Si quieres hacer un PR para mejorar
esa parte...

--
Atentament, cubells.
--

Pedro Manuel Baeza Romero

unread,
Dec 20, 2021, 12:30:11 PM12/20/21
to Usuarios Odoo / OpenERP en España
El parche puesto en OpenUpgrade es para BDs que no están "a medias" (que ya recibieron una migración sin tener el mismo), lo que parece ser tu caso. Así que es arreglarlo manualmente quitando o renombrando esa columna.

openupgradelib no debe evitar renombrarla si ya existe, ya que ese control sirve precisamente para ver si todo va bien. Ignorar el renombramiento si ya existe la columna puede conducir a cosas mucho peores después.

Un saludo.

cubells

unread,
Dec 20, 2021, 1:42:12 PM12/20/21
to openerp-s...@googlegroups.com
El 20/12/21 a les 18:29, Pedro Manuel Baeza Romero ha escrit:
gracias por la explicación Pedro.


--
Atentament, cubells.
--

Francisco F.

unread,
Dec 21, 2021, 4:57:33 AM12/21/21
to Usuarios Odoo / OpenERP en España
Genial Pedro, muchas gracias. No podía entender por qué no funcionaba el parche citado en esta BD
Reply all
Reply to author
Forward
0 new messages