+49 (0)7531 906010| service@combit.net

Problem bei der Migration von MS SQL nach PostgreSQL und "ESF Database Migration Toolkit"

Hallo,

ich habe endlich den Schritt vom AM14 auf den CRM gewagt. Die Migration nach MS-SQL ging relativ einfach.

Jetzt möchte ich gerne die Datenbank nach ProgreSQL konvertieren. Hierfür habe ich mir extra den „ESF Database Migration Toolkit“ gekauft. Die Konvertierung klappt auch halbwegs. Allerdings scheint irgend etwas mit den Datentypen der RECORDID und GROUPID nicht zu stimmen. Ich bekomme nach dem starten der konvertierten DB jedes Mal die Fehlermeldung:

===============================
[color=blue]Die physikalische Struktur der Datenbank-Tabelle/Sicht passt nicht zur genauen Ansichtskonfiguration. Es bestehen folgende Inkonsistenzen, die die Funktionsweise des Pojektes beeinträchtigen können:

Felder bei denen der konfigurierte Feldtyp nicht (mehr) zum physikalischen passt:RECORDID, GROUPID

Felder, die nicht (mehr) in der Datenbank-Tabelle/Sicht vorhanden sind:

Um die Ansichtkonfiguration anzupassen, rufen Sie die Ansichtseigenschaften auf, bis dahin wird mit einer temporären Ansichtskonfiguration gearbeitet. [/color]

Wenn ich einen Datensatz erzeugen will erhalte ich folgende Fehlermeldung:

===============================
[color=blue]In dieser Ansicht gibt es kein Feld vom Typ „Datensatz-ID“. Dies hat zur Folge, dass ein neu angelegter Datensatz nach dem erstmaligen Speichern u.U. nicht angezeigt werden kann, da er in der Datenbank-Tabelle/Sicht u.U. nicht auffindbar sein wird!

Weisen Sie daher unbedingt in der Anischtkonfiguration den Feldtyp „Datensatz-ID“ einem entsprechenden Feld zu, Sie müssen ggf. zuerst eines physikalisch anlegen![/color]

Ok, hört sich ja eigentlich recht einleuchtend an. Wenn ich jetzt auf Ansicht unter Felder gehe ist RECORDID mit dem internen Feldtyp „Datensatz-ID“ ausgezeichnet. Wenn ich Doppelklick zur weiteren Auswahl mache ist der SQL Feldtyp bei beiden Feldern leer.

In meiner MSSQL-Datenbank wird als Feldtyp „uniqueidentifier“ . Bei meiner PostgreSQL-Umgebung kann ich bei dem leeren GROUPID leider keinen Typ „uniqueidentifier“ auswählen, da nicht vorhanden. (RECORDID kann ich den Feldtyp im CRM nicht verändern, da Primärschlüssel).

Scheinbar hat da irgendwas beim konvertieren mit dem besagten Tool nicht geklappt. Das gleiche Problem habe ich auch mit den Combit-Beispieldatenbanken. Z.B. wenn ich Combit_Large konvertiere. Wenn ich das Beispiel direkt in meiner PostgreSQL-Umgebung installiere gibt es keine Probleme.

Vielleicht hatte mal jemand ein ähnliches Problem. Ich hoffe es ist eine Einstellungssache im „ESF Database Migration Toolkit“ von EasyFrom.

Meine Versionen sind bei Postgres 9.3.1 und SQL Server 2008 R2 mit dem Compatibility Pack und CRM 7.0.0.2.

Noch ein kleiner Nachtrag: In den funktionierenden ProgresSQL-Tabellen sind die Schlüssel vom typ Char mit z.B. 32 Zeichen. Die Schlüssel sehen auch leicht anders aus. Bei den funktionierenden DBs in etwa so: „000036673d434fb598cd56eb4755bf34“ bei den konvertierten „defekten“ DBs mit Bindestrichen: „00003667-3d43-4fb5-98cd-56eb4755bf34“.

Viele Grüße
Ingo

Hallo,

so ich habe selbst noch etwas rausgefunden.

Scheinbar kennt der CRM den PostgreSQL-Datentyp UUID nicht ((siehe auch Handbuch Seite 385). Das ist schade, damit wäre eine einfachere Konvertierung möglich. Man muss umständlicherweise den uniqueidentifier-Datentyp in einen Char umwandeln (so funktioniert das bei den Combit-Beispielen auch). Leider reichen hier 32 Zeichen nicht aus, da die Bindestriche nicht automatisch entfernt werden. Daher habe ich 38 Zeichen genommeen. Oder gibt es da einen anderen - effizienteren - Weg?

Viele Grüße
Ingo

© combit GmbH