Migration von Informix - PostgreSQL

Hallo,

ich versuch im Rahmen eines Praxisprojektes die Migration einer großen Informix-DB nach PostgreSQL (unter Linux SLES8).

Gibt es eine Möglichkeit einen bestehenden Informix-Dump (SQL-File mit Tabellen) direkt mit psql nach PostgreSQL zu portieren, bzw. kann man mit pgdump die Informix-DB entsprechend sichern und nach PostgreSQL portieren ?!

Hat jemand schon Erfahrung mit so einer Migration ?

Vielen Dank,

Andreas

Erfahrungen damit habe ich nicht, aber hast du mal probiert, wie so ein Dump aussieht und ob und vor allem welche Fehler es beim Import gibt?

Beim Dump von Informix stehen Kommentare z.B. in geschweiften Klammern ‘{}’ und Informix schreibt auch Metadaten wie Delimiter (hier z.B. ‘|’ gegenüber Tab bei PostgreSQL) in diese Kommentare. Des weiteren stehen in den SQL-Statements Namen in doppelten Anführungszeichen …

------- Hier steht der Anfang der Datei hub.sql (Informix) --------

{ DATABASE hub delimiter | }

grant dba to “informix”;
grant dba to “root”;
grant connect to “public”;

{ TABLE “informix”.t_eds_id row size = 46 number of columns = 8 index size = 9 }
{ unload file name = t_eds00100.unl number of rows = 8690 }

create table “informix”.t_eds_id
(
io_num integer,
io_date date,
eds_num integer,
eds_code char(5),
lst_name nchar(15),
fst_name nchar(9),
sex char(1),
birth date
) ;

Die Datentypen habe ich bereits angepasst und statt “informix” den Namen des entsprechenden Schemas ohne Anführungszeichen eingefügt.

Kann ich das Schema ggf. mit Tools wie DB-Designer (fabforce) portieren ?

Ich weiss, das “ESF Database Convert” das angeblich können soll, aber genutzt habe ich die Software noch nie.

Ansonsten: schreib dir in einer Programmiersprache deiner Wahl einen kleinen stateful Parser, der dir die Sachen konvertiert. Dürften bloss ein, zwei Tage Arbeit sein und die Zeit, die du mit der Suche nach einer passenden Software verwendest, dürfte hier auch gut investiert sein.

Naja, wenn das Tool beides versteht, wäre das sicher ein Weg. Du könntest auch versuchen mit regular expressions das sql-Statement anzupassen. Das ist ein Weg, den ich gerne mit Ultraedit nehme. Kommt auch ein bisschen auf den Umfang an.

Gruß UWe

Vielen Dank schon mal für die Tips.

Ich habe inzwischen von einem Tool gelesen welches InfToPg heißt und sowohl die sql-Files als auch die .unl - Tabellen parsen und nach PostgreSQL portieren kann … ich aber nirgens einen Download finden :angry:

Viel Erfolg! Berichte mir mal, wie groß der Aufwand war.

Gibt es eine Möglichkeit einen bestehenden Informix-Dump (SQL-File mit Tabellen) direkt mit psql nach PostgreSQL zu portieren, bzw. kann man mit pgdump die Informix-DB entsprechend sichern und nach PostgreSQL portieren ?!

http://www.tc.umn.edu/~hause011/code/Convert_schema.html
http://www.swissql.com/products/sqlone-apijava/sqlone-apijava.html


Hat jemand schon Erfahrung mit so einer Migration ?

Bestimmt, aber ich nicht.


Andreas

Hallo,

da mir die Zeit zum Bummeln (oder langem Suchen nach Tools etc.) nicht gegeben ist, habe ich die Informix-Tabellen bzgl:

Datum: von tt.mm.jjj nach ‘tt/mm/jjjj’

und das Backup File (SQL-Statements) mit zwei eigenen Skripts und einiges von Hand geändert … so das alles mit psql eingelesen werden kann.

Wenn alles klappt (…weiß ich in einigen Stunden…) poste ich hier die wesentlichen Änderungen und Skripte.

Bis später dann, :wink:

Andreas