| Matthias Höppner
Von Odoo 16 auf Odoo 19 Community – drei Versionen weiter
Migration at it's best mit OCU
Seit vielen Jahren läuft ein großer Teil der Prozesse bei rad3 in Odoo Community Edition. Verkauf, Einkauf, Lager, Werkstattprozesse, Kasse, Website und viele weitere Abläufe sind eng mit dem ERP-System verbunden.
Mit der Zeit ist dabei natürlich nicht nur eine große Datenmenge entstanden. Auch zahlreiche eigene Erweiterungen, OCA-Module und andere Zusatzmodule gehören inzwischen zum System.
Der Sprung von Odoo 16 Community auf Odoo 19 Community war deshalb kein gewöhnliches Software-Update.
Die besondere Herausforderung bei Odoo Community
Bei Odoo Enterprise steht ein offizieller Upgrade-Service für die Datenbank zur Verfügung. Für die Community Edition existiert dieser offizielle Weg nicht. Üblicherweise müssen solche Migrationen daher mit Community-Werkzeugen oder individuell entwickelten Migrationsskripten durchgeführt werden.
Eine interessante Alternative dafür ist OCU – Odoo Community Upgrade von winotto. Der Dienst ist speziell auf Community Edition ausgerichtet und kann auch mehrere Versionssprünge automatisiert miteinander verketten – in unserem Fall Odoo 16 → 17 → 18 → 19.
Für ein Unternehmen, das bewusst bei der Open-Source-/Community-Variante von Odoo bleiben möchte, ist das ein außergewöhnlich interessanter Ansatz.
Die Datenbank ist nur die halbe Migration
Eine erfolgreiche Odoo-Migration besteht allerdings nicht allein aus der Datenbank.
Über viele Jahre waren bei rad3 eigene Module und Anpassungen entstanden. Diese mussten einzeln daraufhin untersucht werden, ob sie unter Odoo 19 noch erforderlich sind, ob inzwischen Standardfunktionen existieren oder ob der Code angepasst werden muss.
Auch verschiedene OCA- und Drittanbieter-Module mussten auf ihre Odoo-19-Versionen gebracht oder ersetzt werden.
Dazu kamen Änderungen am Datenmodell von Odoo selbst. Zwischen drei Major-Versionen ändern sich Modelle, Feldnamen, Beziehungen, Views und technische APIs teilweise erheblich. OCU beschreibt für den Sprung von Version 16 bis 19 insgesamt hunderte Modell- und Constraint-Änderungen.
Der wichtigste Teil: sehr viel testen
Die eigentliche Grundlage für den später sehr ruhigen Go-Live war deshalb nicht ein einzelner erfolgreicher Migrationslauf.
Es waren zahlreiche vollständige Testmigrationen.
Nach jedem Lauf wurden zentrale Prozesse erneut geprüft: Verkauf, Fakturierung, Einkauf, Lager, POS, Website, Terminbuchung und individuelle Erweiterungen. Technische Auffälligkeiten wurden bis zur eigentlichen Ursache verfolgt. Anschließend begann der nächste Testlauf.
Einige Probleme lagen in eigenen oder externen Modulen. Andere betrafen die eigentliche Datenmigration. Gerade hier war die Zusammenarbeit mit OCU hilfreich: reproduzierbare Fehler konnten dokumentiert und zurückgemeldet werden, und verschiedene Erkenntnisse flossen anschließend in die Migrationsskripte ein.
Dieser Aufwand zahlt sich bei einer ERP-Migration aus. Statt möglichst schnell mit einer scheinbar fertigen Datenbank produktiv zu gehen, sollte ein neuer Stand so lange geprüft werden, bis die verbleibenden Risiken verstanden sind.
Ein nahezu reibungsloser Go-Live
Nach diesen vielen Vorarbeiten verlief der eigentliche Wechsel auf Odoo 19 erfreulich unspektakulär.
Natürlich tauchten auch danach noch einzelne Sonderfälle auf. Einer davon war besonders interessant: In mehr als 43.000 historischen Verkaufsauftragszeilen war nach der Migration noch ein Statuswert aus Odoo 16 gespeichert, der in Odoo 19 nicht mehr zur Struktur des jeweiligen Verkaufsauftrags passte.
Der Fehler konnte zunächst an einzelnen Aufträgen reproduziert werden. Danach wurde die Ursache bis in die Odoo-19-Berechnungslogik verfolgt und ein kontrollierter Repair entwickelt.
Vor der Änderung der Produktionsdaten erfolgten unter anderem vollständige Tests auf einer Kopie der Produktionsdatenbank, ein zusätzlicher LIVE-Dry-run, eine vollständige Datensicherung sowie mehrere technische Sicherheitsprüfungen.
Am Ende wurden:
43.154 Auftragszeilen korrigiert, 9.162 Verkaufsaufträge verarbeitet und bei 287 Verkaufsaufträgen tatsächlich der berechnete Rechnungsstatus geändert.
Die anschließende Verifikation ergab keine verbleibende State-Inkonsistenz und keine unerwarteten Datenänderungen.
OCU bestätigte anschließend sowohl die Analyse als auch den gewählten Reparaturweg und teilte mit, dass dieser Fall bereits in den aktuellen Migration Scripts berücksichtigt wird. Damit profitieren zukünftige Migrationen ebenfalls von dieser Erkenntnis.
Fazit
Der Umstieg von Odoo 16 auf Odoo 19 Community zeigt sehr schön, dass eine anspruchsvolle ERP-Migration nicht zwingend den Wechsel auf Enterprise voraussetzt.
Mit einer guten Migrationsbasis, sorgfältig angepassten Custom-Modulen und vor allem konsequentem Testen lässt sich auch eine über viele Jahre gewachsene Odoo-Community-Installation über mehrere Major-Versionen hinweg modernisieren.
OCU hat dabei eine Lücke geschlossen, für die es bei Odoo Community keinen offiziellen Upgrade-Service gibt.
Weitere Informationen zu OCU:
ocu.winotto.com
Für rad3 heißt das Ergebnis nun schlicht:
Odoo 19 Community ist produktiv.
