Salta al contingut principal
Odoo 20 · Guia pràctica

Migrar a Odoo 20: checklist per a empreses amb integracions

Odoo 20.0 FINAL ja està publicat. Si el teu Odoo té connectors personalitzats o de tercers, aquests són els 8 punts que hem comprovat abans de portar els nostres: amb el fitxer i la línia on els verifiquem, no de sentit a dir.

Checklist de migració a Odoo 20 revisant connectors un a un

Odoo 20.0 FINAL ja està publicat i a l'App Store. Si migres una instal·lació que només fa servir mòduls de la pròpia Odoo, el risc és baix. Si té connectors personalitzats, propis o de tercers, hi ha canvis d'Odoo 20 que trenquen mòduls sencers: i almenys un que, fins al 31 d'octubre, no avisava amb cap error. Aquest és l'ordre en què ho comprovem nosaltres, amb el que es pot automatitzar i el que cal mirar a mà.

1. Inventaria quins mòduls aliens a Odoo corren al teu Odoo

Des de Configuració > Aplicacions, filtra per «no al catàleg d'Odoo» o revisa ir.module.module amb author != 'Odoo S.A.'. Cadascun d'aquests mòduls cal revisar-lo abans de migrar; els de la propia Odoo els porta Odoo.

2. Cerca dependències de mòduls que han desaparegut

grep -rn "base_vat\|base_iban\|stock_picking_batch\|website_sale_wishlist\|website_sale_comparison" */__manifest__.py. Si apareixen a depends, el mòdul queda installable=False a Odoo 20: no és un avís, no s'instal·la. La validació de NIF/IBAN es va traslladar al nucli; la resta no té substitut directe.

3. Cerca odoo.osv al codi Python

grep -rn 'from odoo.osv import' .. El paquet odoo.osv ja no existeix a Odoo 20: dona ModuleNotFoundError i el mòdul no carrega. Canvia cada expression.AND/OR/TRUE_DOMAIN/FALSE_DOMAIN pel seu equivalent a odoo.fields.Domain.

4. Converteix els permisos al format nou

ir.model.access i ir.rule es fonen en un sol model, ir.access. Odoo porta un guió propi: odoo-bin upgrade_code --script 19.4-00-ir-access --addons-path <carpeta>, que converteix els CSV, actualitza el manifest i esborra el fitxer vell. Compte amb els fitxers ._* de macOS: fan que el guió falli amb UnicodeDecodeError; esborra'ls abans amb find . -name '._*' -delete.

5. Revisa com s'escriuen i es llegeixen els adjunts

Actualització del 6 de novembre de 2026: fins al 31 d'octubre era el canvi més perillós perquè no avisava: ir.attachment.create({'datas': ...}) creava l'adjunt amb mida 0 i sense cap error. Des del commit c06a07264bdb d'Odoo llança AssertionError. Canvia 'datas': base64.b64encode(x) per 'raw': x: funciona igual a Odoo 17, 18, 19 i 20, així que es pot arreglar avui sense esperar el port. Llegir amb .datas dona AttributeError: a Odoo 20 es llegeix amb .raw o, després de llegir el camp, amb .content/.to_base64() sobre el valor retornat.

6. Puja la versió del manifest a 20.0

Si el version del __manifest__.py no comença per 20.0, el log diu The module X has an incompatible version, setting installable=False i el mòdul queda uninstallable. No és un avís que es pugui ignorar: sense aquest pas, res del que hi ha més amunt importa.

7. Instal·la en un Odoo 20 real, no només compilis

Que el codi compili o que un escaneig estàtic no marqui res no demostra que el mòdul s'instal·li, i molt menys que funcioni. L'única prova que val és instal·lar de debò en un Odoo 20.0 FINAL amb Enterprise i executar tota la bateria de tests del mòdul, no només l'arrencada.

8. No migris de cop tot el catàleg de connectors

Ordena'ls per allò que mou més diners o és més arriscat deixar trencat, no pel més fàcil de portar. Un connector de facturació o de signatura electrònica que falli en silenci (com el dels adjunts fins al 31 d'octubre) és molt més car de descobrir tard que un de catàleg.

El detall de cada ruptura, amb el fitxer i la línia on la comprovem: Odoo 20 ja és aquí: què canvia per a les teves integracions i connectors.

Preguntes freqüents

Puc migrar a Odoo 20 si tinc connectors personalitzats?

Sí, però cada connector aliè a Odoo cal revisar-lo abans: dependències de mòduls que han desaparegut (base_vat, base_iban...), ús de odoo.osv, el format de permisos i com escriu i llegeix adjunts. Instal·lar sense errors no n'hi ha prou; cal passar la bateria de tests completa en un Odoo 20 real.

Què és el primer que es pot arreglar sense esperar a migrar?

Canviar com s'escriuen els adjunts: 'datas': base64.b64encode(x) per 'raw': x. Funciona igual a Odoo 17, 18, 19 i 20, així que es pot fer avui al codi actual sense esperar la branca 20.

Enllaços útils dins de FlexigoTech

Odoo 20: què canvia per als teus connectorsLes 4 ruptures verificades contra el codiEls nostres connectors ja a Odoo 20La llista viva, amb enllaç a cada fitxaServei d'implantacióMigració acompanyada, amb l'enginyer que la fa

El que fem sobre això

Integracions a midaQuè fa, captures, versions i preu.

Vols que revisem els teus connectors abans de migrar?

Et diem, contra el codi real d'Odoo 20, quins dels teus mòduls personalitzats es trenquen i per quin punt d'aquesta llista. Escriu a comercial@flexigobe.com o truca al +34 616 809 504.

Revisar els meus connectors