Hallo,
der Wusch ein solches Tool zu schaffen, ist sicher schon bei vielen aufgekommen, ich habe aber noch keine wirklich individuelle Lösung gesehen, welche auch vom Endbenutzer zu bedienen wäre.
Das Problem dabei ist, das die "ähnlichen" Datenbankmodelle meist gar nicht so ähnlich sind.
Angenommen du willst von Buchaltungssoftware A zu Buchaltungssoftware B wechseln, dann sieht die "Kndenverwaltung" von BHS-A in der Datenbnak vielleicht so aus:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| +--------------- | Customer +--------------- | custID | custName | deliveryStreet | deliveryZIP | deliveryCity | billingStreet | billingZIP | billingCity | deliveryisbillingadress +--------------- |
während BHS-B das ganze so abbildet:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| +--------------- | Customer +--------------- | custID | custName +---------------
+--------------- | Adresses +--------------- | adressId | Street | ZIP | City +---------------
+--------------- | CustomerAdressLink +--------------- | ID | custID | adressId | adressType +--------------- |
Mal ganz abgesehen davon, dass BHS-B es potentiell ermöglicht auch mehrere Liefer- und Rechnungsadressen zu hinterlegen, wird es auch tricky die eine Struktur auf die andere abzubilden. Ein einfaches Mapping, welches man technisch weniger versierten Nutzern vielleicht gerade noch zumuten kann reicht dann schon nicht mehr aus.
Der Nutzer muss eine Möglichkeit bekommen einen Teil seiner Daten der Customer-Tabelle von BHS-A in die Tabelle Customer aus BHS-B zu schreiben zwei andere Teile in je einen neuen Datensatz von Tabelle Adresses und die Relation muss er dann auch noch in CustomerAdressLink hinterlegen.
Nicht viel schöner wäre es, denn du anders herum Migrieren willst, also von Software B in Software A, da musst du dann mindestens einer Möglichkeit bieten, dass der Nutzer sich eine View erstellt, in welcher die Daten der drei Tabellen aus BHS-B zusammengeführt werden. Auch das wird kaum in einer für Normalsterbliche verständlichen Form möglich sein.
Wenn du solche Fälle hingegen weg definierst, dürfte es nicht besonders schwer ein Tool zum übertragen der Daten zu erstellen, seine Nützlichkeit wird sich nur in grenzen halten.