Odoo 20 ist erschienen, als Community und Enterprise. Bevor wir es irgendjemandem angeboten haben, haben wir es auf sauberen Servern installiert, beide Editionen, nativ und in Docker, Daten aus Odoo 19 übertragen, eigene Module portiert und echte Dokumente gedruckt. Das ist kein Feature-Rundgang. Es geht darum, was sich für ein Unternehmen wirklich ändert, das Odoo 20 einführt oder darauf umsteigt, was noch nicht bereit ist, und um eine Checkliste vor dem Umschalten.
Zuerst der Server
Odoo 20 läuft auf Ubuntu 24.04. Es braucht Python 3.12 oder neuer, ohne das startet Odoo gar nicht erst. Es erwartet PostgreSQL 16; darunter gibt Odoo nur eine Warnung aus, aber darauf betreibt man kein Unternehmen. Auf Ubuntu 22.04 lässt sich das offizielle Paket nicht einmal installieren: Python ist zu alt, der Datenbankserver ist Version 14, und benötigte Pakete fehlen. Ein 22.04-Server, auf dem heute Odoo 19 läuft, bekommt 20 also nicht durch ein zusätzliches Paket. Planen Sie einen neuen Server mit 24.04 und den Umzug dorthin.
Eine stille Änderung hilft der Sicherheit: Standardmäßig lauscht Odoo 20 nur auf der lokalen Adresse der eigenen Maschine und muss daher hinter einem Webserver wie nginx stehen, so wie es ohnehin laufen sollte. Eine Installation, die Odoo direkt über seinen Port angesprochen oder in einem Container betrieben hat, muss die Lauschadresse bewusst setzen.
API-Schlüssel haben jetzt einen Bereich und ein Ablaufdatum
Das ist die Änderung, die am ehesten still etwas kaputt macht. In Odoo 20 muss ein API-Schlüssel, den eine Integration nutzt, den RPC-Bereich haben. In Odoo 19 erstellte Schlüssel haben keinen Bereich, und wir haben bestätigt, dass Odoo 20 einen solchen Schlüssel ablehnt. Ein neuer Schlüssel läuft standardmäßig nach 30 Tagen ab (zur Wahl stehen ein Tag, ein Monat oder ein Jahr; "nie" nur für Administratoren). Eine Integration, die am Starttag einwandfrei läuft, kann einen Monat später stehen bleiben, und niemand weiß mehr, warum.
Zwei weitere Punkte für alle, die Integrationen betreuen. Die klassische XML-RPC-Schnittstelle funktioniert in 20 weiter, aber jeder Aufruf schreibt jetzt eine Veraltungswarnung ins Log, und Odoo hat ihre Entfernung für Odoo 22 angekündigt. Außerdem bringt die Enterprise-Edition eine zweite Art Schlüssel für ihren eigenen MCP-Server mit, die für RPC nicht funktioniert. Halten Sie beide getrennt.
Eigene Module brauchen eine echte Portierung
Odoo 20 ersetzt die zwei bisherigen Zugriffsmodelle, Zugriffsrechte und Datensatzregeln, durch ein einziges Zugriffsmodell. Ein eigenes Modul, das noch die alten Zugriffsdateien mitbringt, lässt sich auf 20 überhaupt nicht installieren. Odoo liefert Konverter mit, die das meiste davon umschreiben, und die von uns portierten Module ließen sich auf 20 installieren, mit erhaltenen Datensatzregeln. Trotzdem muss jedes eigene Modul vor dem Umstieg portiert und auf einer Test-Datenbank mit 20 installiert werden.
Prüfen Sie auch Ihre App-Liste. Die Prüfung von USt-IdNr. und IBAN ist ins Basismodul gewandert, Sammeltransfers ins Lager, das Organigramm zu den Mitarbeitern. Merkliste und Produktvergleich im Webshop sind ersatzlos entfallen. Field Service wurde auf der Planung neu aufgebaut, mit einem anderen Datenmodell, daher sollte ein Unternehmen, das es nutzt, diesen Teil als eigenes Projekt behandeln.
Einige Datenregeln haben sich so geändert, dass jeder Import es merkt. Ein Kontakt gilt jetzt nur dann als Firma, wenn er eine Steuernummer hat, daher kommen Firmen ohne sie als Privatpersonen an. Felder der Bankkonten wurden umbenannt, und die Maßeinheit auf Einkaufspositionen und Lagerbewegungen liegt in einem neuen Feld.
PDF: gleiche Engine, vorerst nicht wechseln
Rechnungen und Lieferscheine druckt weiterhin wkhtmltopdf, jetzt als eigenes Modul. Nötig ist der Build mit gepatchtem Qt: Die normale Version aus der Linux-Distribution hat unsere Rechnung ohne Kopf- und Fußzeile der Firma gedruckt, ohne jede Fehlermeldung. Außerdem braucht Odoo mindestens zwei Worker, um überhaupt zu drucken.
Odoo 20 bringt eine optionale neue PDF-Engine mit. Wir haben zehn echte Dokumente mit beiden Engines gedruckt. Mit der neuen kam das Hauptbuch auf zwei statt sechs Seiten heraus und verlor still den Großteil seiner Zeilen; die Summen auf der Rechnung überlagerten Text; die Dateien waren um ein Mehrfaches größer. Ihre Autoren nennen sie selbst eine frühe Alpha, und ein Dokument, das still Buchungszeilen verliert, ist schlechter als gar keines. Bleiben Sie vorerst bei wkhtmltopdf.
Noch kein offizielles Docker-Image
Zum Zeitpunkt des Schreibens gibt es auf Docker Hub kein offizielles Image für Odoo 20. Wenn Sie Odoo in Containern betreiben, bauen Sie das Image selbst aus dem offiziellen Odoo-Paket (für Enterprise aus dem Paket, das Sie mit Ihrer eigenen Subscription herunterladen), setzen die Lauschadresse und nutzen PostgreSQL 16. Die AI-Funktionen von Enterprise brauchen außerdem die Vektor-Erweiterung in der Datenbank.
Enterprise bringt einen eigenen MCP-Server mit
Odoo 20 Enterprise enthält einen eingebauten MCP-Server. Er wird zusammen mit den AI-Funktionen installiert, wenn die Datenbank die Vektor-Erweiterung hat, und gibt einem AI-Agenten fünf reine Lese-Werkzeuge: Modelle und Felder nachschlagen, Datensätze suchen und gruppierte Zahlen lesen, immer im Rahmen der Rechte des Benutzers, dessen Schlüssel er nutzt. Er meldet sich mit einem Schlüssel mit eigenem Bereich oder über OAuth an. Damit kann ein Agent Ihre Daten lesen. Das Odoo, auf dem er läuft, zu installieren, zu sichern, umzuziehen und zu aktualisieren, ist eine andere Aufgabe.
In-place-Upgrade einer 19er-Datenbank: noch nicht
Für Community gibt es von den Community-Upgrade-Skripten noch keine veröffentlichte Version für Odoo 20. Für Enterprise lieferte der eigene Upgrade-Dienst von Odoo an unseren Testtagen Fehler, und wir haben ihn noch keine 19er-Datenbank vollständig auf 20 heben sehen. Wir sagen lieber "noch nicht", als zu raten, daher bieten wir ein In-place-Upgrade von 19 auf 20 heute nicht an.
Was heute funktioniert, ist eine neue Odoo-20-Datenbank. Richten Sie sie zuerst ein: Land, Kontenplan, Steuern und Sprachen, denn Daten, die vor dem Kontenplan geladen werden, bleiben mit leeren Konten zurück. Dann übertragen Sie die Geschäftsdaten, vergleichen beide Datenbanken nebeneinander, Zahlen und Inhalte, alle Sprachen eingeschlossen, und klären jede Lücke vor dem Umschalten. Das System auf Odoo 19 bleibt unberührt als Weg zurück. Die allgemeinen Regeln aus Odoo-Upgrades ohne Panik gelten weiter: erst proben, und das Umschalten im Live-Betrieb soll der langweilige Teil sein.
Zuerst am eigenen ERP
Unser eigenes ERP haben wir genau so umgezogen: eine neue Odoo-20-Datenbank auf einem neuen Server, die Daten übertragen und verglichen, das alte System als Weg zurück behalten. Zwei Lehren standen in keiner Checkliste, die wir vorher hatten.
Erstens beweist ein Vergleich, dass die Kopie treu ist, nicht dass das Original richtig war. Fehler, die unbemerkt in den 19er-Daten lagen, kamen genau so an, wie sie waren: ein Formular mit einer Pflichtfrage, die sich nicht beantworten ließ, eine Buchungsseite, der nur eine inaktive Person zugeordnet war. Die Abhilfe ist einfach und manuell: Gehen Sie nach dem Umzug Ihre öffentlichen Seiten und Formulare so durch, wie es ein Kunde täte, auf dem Telefon und am Desktop.
Zweitens bedeutet nicht jede Einstellung in 20 dasselbe. Das deutlichste Beispiel ist ausgehende Post. Odoo 20 braucht eine Alias-Domain an der Firma; ohne sie schlagen E-Mails ohne eigene Absenderadresse (Portalnachrichten, Formulare auf der Website, anonyme Bestellungen) fehl, statt versendet zu werden. Und geplante Aktionen haben wir einzeln wieder eingeschaltet, nach einem Blick in die Warteschlange ausgehender E-Mails, statt alle auf einmal.
Checkliste vor dem Umstieg auf Odoo 20
- Ein Server mit Ubuntu 24.04, Python 3.12 und PostgreSQL 16. Ein neuer Server, kein Betriebssystem-Upgrade auf dem laufenden.
- Enterprise: eine Subscription, die 20 abdeckt, und das damit heruntergeladene Paket.
- Die App-Liste gegen die in 20 zusammengeführten oder entfernten Module geprüft. Field Service separat geplant.
- Jedes eigene Modul auf das neue Zugriffsmodell portiert und auf einer Test-Datenbank mit 20 installiert.
- Jede Integration erfasst, mit neuem Schlüssel im RPC-Bereich und notiertem Ablaufdatum. Ein Plan, XML-RPC vor Odoo 22 zu verlassen.
- Land, Kontenplan, Steuern und Sprachen eingerichtet, bevor irgendwelche Daten geladen werden.
- Kontakte ohne Steuernummer geprüft: In 20 sind sie Privatpersonen, keine Firmen.
- Die Alias-Domain für ausgehende Post an der Firma gesetzt.
- Drucken geprüft, mit gepatchtem wkhtmltopdf, mindestens zwei Workern und einer echten gedruckten Rechnung.
- Beide Datenbanken verglichen und jede Lücke geklärt. Öffentliche Seiten und Formulare auf Telefon und Desktop durchgeklickt.
- Backups laufen, und eine Wiederherstellung wurde wirklich getestet, nicht nur geplant. Der alte Server bleibt als Weg zurück.
- Geplante Aktionen einzeln eingeschaltet.
FAQ
Kann ich meine Odoo-19-Datenbank heute auf Odoo 20 aktualisieren?
In-place noch nicht. Die Community-Upgrade-Skripte für 20 sind nicht veröffentlicht, und der eigene Upgrade-Dienst von Odoo hat noch nicht gezeigt, dass er eine 19er-Datenbank vollständig auf 20 bringt. Heute wechseln Sie auf 20, indem Sie eine neue Odoo-20-Datenbank anlegen, Ihre Daten hineinübertragen und beide vor dem Umschalten vergleichen.
Läuft Odoo 20 auf Ubuntu 22.04?
Nein. Das offizielle Paket lässt sich dort nicht installieren: Odoo 20 braucht Python 3.12 und Pakete, die 22.04 nicht hat, und erwartet PostgreSQL 16. Nehmen Sie Ubuntu 24.04.
Jetzt auf Odoo 20 umsteigen oder bei 19 bleiben?
Odoo gibt jeder Hauptversion drei Jahre Standard-Support; für 19 läuft er bis September 2028. Ein neues Projekt auf einem neuen Server kann mit 20 starten. Ein laufendes 19 hat Zeit: Steigen Sie um, wenn Ihre eigenen Module und Integrationen portiert und getestet sind, nicht weil eine neue Nummer erschienen ist.
Wenn ein AI-Agent diesen Weg mit Ihnen gehen soll, auf Ihrem eigenen Server und mit jedem Schritt gezeigt, bevor er läuft, dann ist das die Aufgabe von Zoxron MCP. Es ist kostenlos, und Ihren Agenten verbinden Sie unter zoxron.com/connect.
