Dienstag, 24. März 2015

Neuer Ansatz zur Datenmigration zwischen OpenERP 7 oder Fremdsystemen auf Odoo 8

Viele setzen erfolgreich OpenERP 7 ein und spielen mit dem Gedanken auf Odoo 8 zu migrieren.

Dazu gibt es verschiedene Ansätze.

1. Enterprise Service von Odoo SA

Wenn man einen Vertrag bei Odoo SA hat, gibt es die Möglichkeit seine Datenbank dort migrieren zu lassen.
Dazu lädt man eine komplette Datenbank auf den Server von Odoo. Die Daten kann man vorher anonymisieren lassen. Danach werden von Odoo Skripte erstellt, die die Konvertierung durchführen. Als Resultat bekommt man SQL Skripte, mit denen man eine Odoo 8 Datenbank erstellt.

Dies kann in der Realität aber schon mal einige Wochen bzw. Monate dauern. :(

Wenn das Transformationsskript von Odoo erstellt wurde,  testet man das Resultat und spielt dann die Datenbank nochmals ein und stellt danach um.

Leider muss man bei diesem Verfahren Offline-Zeit von einigen Tagen einplanen, resultierend auf der Datenbankgrösse.

2. DoItYourSelf mit ETL Tools

Mittels ETL Tools wie z.B. https://github.com/ingadhoc/odoo-etl kann man selbst die Daten migrieren. Dazu ist natürlich hohes technisches Verständnis nötig, insbesondere muss man die Modul- und Tabellenstruktur kennen.

Das o.g. Tool wird in einem Odoo Server installiert. Es vergleicht dann die v7 Datenbank mit der v8 Datenbank und meldet welche Module ggf. fehlen.

Danach kann man die Daten umkopieren.

3. Permanent Transfer und Parallelbetrieb

Wir haben jetzt ein Tool in c# programmiert. Es ist eine Konsolenanwendung unter Windows. Man richtet sich einen Odoo 8 Server ein und trägt natürlich Sorge, dass alle Module von v7 auch dort vorhanden sind.

Mittels XML-RPC werden von der Anwendung alle Stammdaten (Kunden, Lieferanten, Produkte, Benutzer) sowie die Aufträge aus der v7 in die v8 übertragen.
Da man aber keinen Einfluss auf das Erstellungs- und Änderungsdatum sowie den Benutzer hat, weil dies vom Framework gesetzt wird, haben wir eine kleines Modul geschrieben, das auch INSERT und UPDATE Befehle auf Basis von XML-RPC erlaubt. Danach dem Einfügen ändern wir den Datensatz noch auf das ursprüngliche Datum und Benutzer der v7 Datenbank. So bleibt der historische Zustand erhalten.

Parallelbetrieb

Da die Konsolenanwendung über einen Task täglich oder auch stündlich die Veränderungen überträgt, kann man sich solange Zeit lassen, bis man sich sicher ist, das alles in Odoo 8 läuft.

Ob man auch die Lagerbewegungen oder die Nachrichten übertragt, darüber läßt sich streiten. Manchmal ist es besser nicht alle Altlasten zu übertragen. Aber möglich.

Auch bei Fremdsystemen

Ein ähnliches Verfahren setzen wir übrigens auch bei der Umstellung von Fremdsystemen ein. Konkret haben wir so einen Kunden von BEOSYS auf Odoo umgestellt. Dabei haben wir alle Kunden, Lieferanten, Artikel, Stücklisten, Arbeitspläne und Detailtabellen auf Odoo übertragen. Der Kunde konnte mehrere Wochen parallel testen und ist dann umgestiegen. Dies funktioniert mit jedem System, dass einen Zugriff auf seine Datenbank zulässt, Webservices hat oder permanente Exporte unterstützt.
  

Keine Kommentare:

Kommentar veröffentlichen