Odoo 20.0 FINAL è uscito dopo la Odoo Experience di Bruxelles (24–26 settembre 2026) ed è già pubblicato nell'App Store. Prima di portare qualsiasi cosa, abbiamo letto il codice sorgente reale (non un changelog né un blog di terze parti) per sapere cosa rompe un connettore che oggi funziona in Odoo 19. Ecco cosa abbiamo trovato, con il file e la riga in cui l'abbiamo verificato.
Metodo: ogni riga della tabella nasce dall'esecuzione di ls, grep o git log su /srv/odoo-fuente/odoo-20.0 e /srv/odoo-fuente/enterprise-20.0 (commit 17ff827a1 e e5186134, 26 e 27 settembre 2026), non dalla lettura di articoli su Odoo 20 altrove.
Le quattro rotture che abbiamo verificato
| Cosa scompare | Cosa succede se il tuo modulo lo usa | Verificato su |
|---|---|---|
base_vat e base_iban | Il modulo non si installa se dipende da essi: la validazione di NIF/IBAN è passata al core. | addons/ del codice sorgente di Odoo 20.0 FINAL |
ir.model.access e ir.rule | Si fondono in un nuovo modello, ir.access. I CSV dei permessi nel vecchio formato non vengono letti. | odoo/addons/base/models/ir_access.py + odoo/upgrade_code/19.4-00-ir-access.py |
odoo.osv (l'intero pacchetto) | from odoo.osv import expression genera ModuleNotFoundError e il modulo non si carica. | odoo/osv/ assente nel codice sorgente di Odoo 20.0 FINAL |
Il campo datas negli allegati | ir.attachment.create({'datas': ...}) genera AssertionError dal 31 ottobre 2026. Fino ad allora creava l'allegato con dimensione 0, senza alcun errore, e il PDF firmato risultava vuoto. | odoo/addons/base/models/ir_attachment.py:502 nel codice sorgente di Odoo 20.0 del 2 novembre 2026 (prima, la riga 535) |
Aggiornamento del 6 novembre 2026: fino al 31 ottobre, la più pericolosa era quella degli allegati, perché non generava alcuna eccezione: un connettore di firma elettronica che continuasse a scrivere 'datas': base64... si installava senza problemi, superava lo smoke test e salvava il PDF firmato con dimensione 0. Dal commit c06a07264bdb di Odoo («[FIX] base: remove fallback for datas»), quel create genera AssertionError: _check_contents should handle that. La correzione non cambia: 'raw' con i byte non codificati, che vale in Odoo 17, 18, 19 e 20.
Cosa controllare prima di migrare un connettore proprio
grep -rn base_vat\|base_iban __manifest__.pyin tutti i tuoi moduli: se compare independs, non si installa.grep -rn 'from odoo.osv import'nel codice Python: ogni occorrenza va cambiata infrom odoo.fields import Domain.- File
ir.model.access.csv: eseguireodoo-bin upgrade_code --script 19.4-00-ir-access, che converte il formato, aggiorna il manifest ed elimina il vecchio CSV (lo script della stessa Odoo). - Qualsiasi
'datas': base64.b64encode(...)scritto su un allegato: cambiarlo in'raw': ..., che funziona allo stesso modo in Odoo 17, 18, 19 e 20 : non serve aspettare il porting per correggerlo.
Come l'abbiamo testato noi
Ogni nostro connettore che arriva su Odoo 20 passa prima da un Odoo 20.0 FINAL reale con Enterprise: si installa davvero, viene eseguita tutta la sua batteria di test (con almeno un test e nessuno saltato) e solo se tutto è verde viene pubblicato. Installare senza errori non basta: la rottura degli allegati, ad esempio, la vede solo un test che crea il documento (fino al 31 ottobre, uno che lo apriva anche), mai un log di installazione pulito.
Con questo criterio abbiamo già 9 connettori pubblicati su Odoo 20 (il dettaglio è in questo articolo) e il resto del catalogo arriva modulo per modulo, man mano che supera l'intera batteria, non tutto insieme.
Domande frequenti
Si può già installare Odoo 20 in produzione?
Odoo 20.0 FINAL è pubblicato e disponibile nell'App Store. Prima di migrare un'installazione con connettori personalizzati, controlla se dipendono da base_vat, base_iban o odoo.osv e se scrivono allegati con 'datas'.
Perché un connettore che si installa bene può comunque fallire in Odoo 20?
Perché l'installazione verifica solo che manifest e viste si carichino. La modifica sugli allegati (campo datas) non emerge all'installazione: dal 31 ottobre 2026 genera AssertionError alla creazione del record e, fino a quella data, non dava alcun errore e il documento veniva salvato vuoto. Lo rileva solo un test che passa da quel codice.
Link utili in FlexigoTech
Cosa facciamo in merito
Il tuo connettore dipende da noi? Ti diciamo se Odoo 20 lo rompe
Scrivici il nome del modulo e ti diciamo, sul codice reale, se ti riguarda una di queste quattro rotture. Scrivi a comercial@flexigobe.com o chiama il +34 616 809 504.

