Naar hoofdinhoud
Odoo 20 · Praktische gids

Migreren naar Odoo 20: checklist voor bedrijven met integraties

Odoo 20.0 FINAL is gepubliceerd. Heeft jouw Odoo eigen of externe connectoren, dan zijn dit de 8 punten die wij hebben gecontroleerd voordat we de onze porteerden: met het bestand en de regel waar we ze verifieerden, niet van horen zeggen.

Checklist voor migratie naar Odoo 20 met controle van connectoren, één voor één

Odoo 20.0 FINAL is gepubliceerd en staat in de App Store van Odoo. Migreer je een installatie die alleen modules van Odoo zelf gebruikt, dan is het risico laag. Heeft die eigen, zelfgemaakte of externe connectoren, dan zijn er wijzigingen in Odoo 20 die hele modules breken: en minstens één die tot en met 31 oktober met geen enkele foutmelding waarschuwde. Dit is de volgorde waarin wij het controleren, met wat je kunt automatiseren en wat je met de hand moet nakijken.

1. Maak een overzicht van de modules die niet van Odoo zelf zijn

Filter in Instellingen > Apps op "niet in de catalogus van Odoo" of bekijk ir.module.module met author != 'Odoo S.A.'. Elk van die modules moet je vóór de migratie nakijken; de modules van Odoo zelf porteert Odoo.

2. Zoek afhankelijkheden van modules die zijn verdwenen

grep -rn "base_vat\|base_iban\|stock_picking_batch\|website_sale_wishlist\|website_sale_comparison" */__manifest__.py. Komen ze voor in depends, dan is de module in Odoo 20 installable=False: het is geen waarschuwing, de module wordt niet geïnstalleerd. De validatie van NIF/IBAN is naar de kern verhuisd; de rest heeft geen directe vervanger.

3. Zoek odoo.osv in de Python-code

grep -rn 'from odoo.osv import' .. Het pakket odoo.osv bestaat niet meer in Odoo 20: het geeft ModuleNotFoundError en de module laadt niet. Vervang elke expression.AND/OR/TRUE_DOMAIN/FALSE_DOMAIN door het equivalent in odoo.fields.Domain.

4. Zet de toegangsrechten om naar het nieuwe formaat

ir.model.access en ir.rule gaan op in één model, ir.access. Odoo levert een script mee: odoo-bin upgrade_code --script 19.4-00-ir-access --addons-path <carpeta>, dat de CSV-bestanden omzet, het manifest bijwerkt en het oude bestand verwijdert. Let op de ._*-bestanden van macOS: daardoor faalt het script met UnicodeDecodeError; verwijder ze eerst met find . -name '._*' -delete.

5. Controleer hoe bijlagen worden geschreven en gelezen

Update van 6 november 2026: tot 31 oktober was dit de gevaarlijkste wijziging, omdat ze niet waarschuwde: ir.attachment.create({'datas': ...}) maakte de bijlage aan met grootte 0 en zonder enige fout. Sinds commit c06a07264bdb van Odoo geeft het AssertionError. Vervang 'datas': base64.b64encode(x) door 'raw': x: dat werkt hetzelfde in Odoo 17, 18, 19 en 20, dus je kunt het vandaag al herstellen zonder op de port te wachten. Lezen met .datas geeft AttributeError: in Odoo 20 lees je met .raw of, nadat je het veld hebt gelezen, met .content/.to_base64() op de teruggegeven waarde.

6. Verhoog de versie in het manifest naar 20.0

Begint de version in het __manifest__.py niet met 20.0, dan meldt het log The module X has an incompatible version, setting installable=False en blijft de module uninstallable. Dit is geen waarschuwing die je kunt negeren: zonder deze stap doet niets van het voorgaande ertoe.

7. Installeer op een echte Odoo 20, compileer niet alleen

Dat de code compileert of dat een statische scan niets markeert, bewijst niet dat de module installeert, en al helemaal niet dat ze werkt. De enige test die telt is een echte installatie op Odoo 20.0 FINAL met Enterprise en het uitvoeren van de volledige testbatterij van de module, niet alleen het opstarten.

8. Migreer niet in één keer de hele catalogus aan connectoren

Rangschik ze op wat het meeste geld verplaatst of het riskantst is om stuk te laten, niet op wat het makkelijkst te porteren is. Een connector voor facturatie of elektronische handtekening die ongemerkt faalt (zoals die van de bijlagen tot 31 oktober) is veel duurder om laat te ontdekken dan een catalogusconnector.

Het detail van elke breuk, met het bestand en de regel waar we het controleerden: Odoo 20 is er: wat verandert er voor je integraties en connectoren.

Veelgestelde vragen

Kan ik migreren naar Odoo 20 als ik eigen connectoren heb?

Ja, maar elke connector die niet van Odoo zelf is, moet je vooraf nakijken: afhankelijkheden van modules die zijn verdwenen (base_vat, base_iban...), gebruik van odoo.osv, het formaat van de toegangsrechten en hoe bijlagen worden geschreven en gelezen. Zonder fouten installeren is niet genoeg; je moet de volledige testbatterij doorstaan op een echte Odoo 20.

Wat kun je als eerste herstellen zonder op de migratie te wachten?

Aanpassen hoe bijlagen worden geschreven: 'datas': base64.b64encode(x) door 'raw': x. Het werkt hetzelfde in Odoo 17, 18, 19 en 20, dus je kunt het vandaag al doen in de huidige code zonder op de tak 20 te wachten.

Nuttige links binnen FlexigoTech

Odoo 20: wat verandert er voor je connectorenDe 4 breuken, geverifieerd in de codeOnze connectoren al in Odoo 20De actuele lijst, met een link naar elke productpaginaImplementatieserviceBegeleide migratie, met de engineer die het uitvoert

Wat wij hiermee doen

MaatwerkintegratiesWat het doet, schermafbeeldingen, versies en prijs.

Wil je dat we je connectoren nakijken vóór de migratie?

We vertellen je, aan de hand van de echte code van Odoo 20, welke van je aangepaste modules breken en bij welk punt van deze lijst. Stuur een e-mail naar comercial@flexigobe.com of bel +34 616 809 504.

Mijn connectoren laten nakijken