Update von OpenERP 7 auf Odoo 8

Migration mit Hilfe von OpenUpgrade

Christoph Giesel

Update von OpenERP 7 auf Odoo 8

 

Einige Unternehmen benutzen OpenERP 7 für ihre ERP Prozesse und sehen nun die Vorteile von Odoo 8. Beispielsweise ist der neue Website Builder interessant, welcher zur Gestaltung der eigenen Webseite oder für den Shop genutzt werden kann.

 

Wie bereits in den Versionen zuvor wurden auch mit dem Schritt zur Version 8 einige Felder der Modelle verändert oder zu anderen Modellen verschoben. Odoo kann zwar mit neuen Feldern und ein paar Veränderungen umgehen, aber ein komplette Anpassung der Struktur und Daten ist von den Entwicklern wie in den Versionsprüngen zuvor nicht vorgesehen. Daher ist es nicht so einfach möglich eine Datenbank von OpenERP 7 in Odoo 8 zu nutzen.

 

Odoo Enterprise Migration

 

Odoo bietet für die Migration der Datenbank die Odoo Enterprise Migration an. Diese wird in Verbindung mit einem Enterprise Vertrag angeboten. Der Kunde schickt hierbei ein Datenbankabbild zu Odoo, welche die Migration für diesen durchführen. In der ersten Phase wird eine erste Migration der Datenbank durchgeführt und zum Testen an den Kunden zurückgeschickt. Ist der Test zufriedenstellend, wird die Migration einer aktuellen Datenbank durchgeführt. Die Addons von Drittanbietern sind von dieser Migration nicht abgedeckt.

 

OpenUpgrade

 

Einige Entwickler und Nutzer von Odoo wollte die Migration selbst durchführen. Zum einen ist das Ziel eine Migration automatisch durch ein Skript selbständig durchzuführen zu können. Bei mehreren Migrationen oder für kleine Organisationen ist dies kostengünstiger. Zum anderen schrecken einige Unternehmen davor zurück, die Daten an ein fremdes Unternehmen abzugeben. Zu diesem Zweck wurde das Tool OpenUpgrade von der niederländischen Firma Therp B.V. entwickelt. Dieses setzt auf Odoo auf, erweitert die Update Funktionalitäten und bietet Migrationsskripte für fast jedes einzelne Addons an.

 

Integrierte Addons

 

Möchte man für die Migration seiner eigenen Datenbank OpenUpgrade nutzen, so sollte man zunächst den aktuellen Abdeckungsgrad der bei sich eingesetzten Odoo Addons in der Dokumentation von OpenUpgrade vergleichen. Zum jetzigen Stand sind noch nicht für alle Migrationsskripte vorhanden. Ist eins nicht vorhanden, so ist es hilfreich im Github Repository von OpenUpgrade zu schauen, ob bereits ein Pull Request hierfür existiert. Ist dies nicht der Fall, so muss man sich entscheiden, ob man dieses Addon unbedingt benötigt und dieses ggf. deinstallieren kann oder ob man selbst ein Migrationsskript schreiben möchte. Zum letzteren Thema wird hier im Blog demnächst ein Artikel veröffentlicht werden.

 

weitere Addons

 

Abgesehen von den integrierten Addons muss außerdem der Status der Addons von Drittanbietern oder der selbst geschriebenen überprüft werden. Bei der von uns durchgeführten Migration konnten wir mit ein wenig Recherche oft aktualisierte Addons finden. Ist eine neue Version vorhanden, so muss auf jeden Fall überprüft werden, ob es hier ggf. Änderungen an den Modellen bzw. Feldern gab. Dies ist meist nicht der Fall, aber falls doch, so ist auch hier ein Migrationsskript notwendig. Bei Addons, die man selber auf die v8 anpassen muss, sind meist ein paar Anpassungen notwendig. Je nach veränderte Funktionen ist dies mal leichter, mal schwerer. In Odoo 8 wurde die API 8 eingeführt, wobei diese weiterhin mit der API 7 kompatibel ist. Dennoch haben sich einige IDs von XML Dateien oder sogar die Struktur geändert. Auch wurden einige Prozesse und Funktionen verändert, wodurch eine Portierung in manchen Fällen etwas zeitaufwändiger sein könnte als man denkt.

 

Durchführen der Migration

 

Ist der Stand der Addons geklärt, so kann die Migration gestartet werden. Auf dem System auf dem die Migration durchgeführt werden soll, muss PostgreSQL und die Abhängigkeiten von Odoo installiert sein. Zum Durchführen der automatischen Migration existiert eine kleine Anleitung in der Dokumentation. Hierbei muss nur das Skript heruntergeladen werden und mit Angabe der Config, des Datenbanknamens sowie der Zielversion gestartet werden.

 
wget https://raw.githubusercontent.com/OpenUpgrade/OpenUpgrade/HEAD/scripts/migrate.py
python migrate.py --config=[Pfad zur openerp.conf] --database=[Name der Datenbank] --run-migrations=8.0
 

Das Skript holt den Code aus dem Github Repository und legt diesen in /var/tmp/openupgrade/8.0/server ab, kopiert die Datenbank und führt die Migration auf dieser durch. Den Log zur Migration findet man in /var/tmp/openupgrade/migration.log, welchen man in einem zweiten Terminal mit Hilfe folgenden Befehls verfolgen kann:

 
tail -f /var/tmp/openupgrade/migration.log
 

Ist das Skript durchgelaufen, muss auf jeden Fall der Log auf Fehler überprüft werden. Oft passiert es, dass man weitere Anpassungen durchführen muss. Hilfe findet man beispielsweise im GitHub Repository. Nach einer Migration muss nun ein Update der migrierten Datenbank durch die Odoo v8 durchgeführt werden. Hierfür setzt man sich seine zukünftige Odoo v8 auf, integriert die zusätzlichen Addons und ruft folgenden Befehl auf (eventuell müssen weitere Parameter übergeben werden, wie beispielsweise die Config):

 
./odoo.py -d [migrierte datenbank] -u all --stop-after-init
 

Ist dies erfolgreich durchgelaufen, kann Odoo nun normal gestartet werden. Hier sollten nun alle Einstellungen und Prozesse überprüft werden.

About Christoph Giesel

He drinks no coffee but likes mate, python and devOps stuff.