credativ-pg-migrator

Legacy-Datenbanken nach PostgreSQL migrieren
credativ-pg-migrator überführt Schemata, Daten, Constraints, Routinen und Views aus proprietären und Legacy-Datenbanksystemen nach PostgreSQL — mit einem Migrationsprotokoll und einer Verifikation nach der Migration, die genau zeigen, was angekommen ist.
Warum credativ-pg-migrator#
Zehn Quelldatenbanken, ein Werkzeug
Oracle, Informix, Sybase ASE, MS SQL Server, IBM DB2 (LUW, z/OS, i), MySQL, MariaDB, SQL Anywhere, SQLite und PostgreSQL — jede über einen eigenen Connector, sodass die Eigenheiten der Engines dort behandelt werden, wo sie hingehören.
Mehr als Tabellen und Zeilen
Primärschlüssel, Sekundärindizes, Fremdschlüssel, Check-Constraints, Defaults, IDENTITY-Spalten und Sequenzen wandern gemeinsam mit den Daten. Views, Funktionen, Prozeduren und Trigger werden nach PostgreSQL-SQL und PL/pgSQL übersetzt.
Verifiziert, nicht nur kopiert
Die Validierung nach der Migration führt unabhängige Vergleiche durch — Zeilenzahlen, Prüfsummen ganzer Tabellen, Hashes zufälliger Zeilen und LOB-Byte-Größen — dazu einen strukturellen Vergleich von Spalten, Indizes und Constraints, ausgegeben als Markdown-Bericht.
Auch für abgeschottete Umgebungen
Wo eine Live-Verbindung nicht möglich ist, verarbeitet der Migrator stattdessen
Offline-DDL-Skripte und CSV-Extrakte (IBM DB2 z/OS und i) oder Informix-.unl-
Exportdateien.
Über Konfiguration anpassbar
Eine einzige YAML-Datei steuert den Lauf: Ersetzungen von Datentypen und Default-Werten,
WHERE-Filter pro Tabelle, Batch-Größen und Konfliktbehandlung — Anpassungen an
Ihr Schema erfordern keine Codeänderungen.
Ein vollständiges Migrationsprotokoll
Jedes migrierte Objekt wird mit Quellcode, generiertem Zielcode und Ergebnis in einer PostgreSQL-Migrationsdatenbank festgehalten — ein fehlgeschlagenes Objekt lässt sich so untersuchen und erneut migrieren, statt raten zu müssen.
Unterstützte Quelldatenbanken#
- OracleLive-Verbindung
- InformixLive-Verbindung
- Sybase ASELive-Verbindung
- MS SQL ServerLive-Verbindung
- IBM DB2 LUWLive-Verbindung
- IBM DB2 z/OSoffline (DDL + CSV)
- IBM DB2 for ioffline (DDL + CSV)
- MySQLLive-Verbindung
- MariaDBLive-Verbindung
- SQL AnywhereLive-Verbindung
- SQLitelokale Datei, kein Treiber
- PostgreSQLfür Spezialfälle
Wie vollständig die einzelnen Connectoren sind, unterscheidet sich erheblich. Die Funktionsmatrix führt den Status je Connector und Funktion auf — abgeglichen mit dem Quellcode der Connectoren, nicht mit einer Roadmap.
Zieldatenbank: PostgreSQL.
Installation#
Aus PyPI#
python3 -m venv migrator_venv
. ./migrator_venv/bin/activate
pip install credativ-pg-migratorDas Paket ist unter pypi.org/project/credativ-pg-migrator veröffentlicht.
Aus dem PostgreSQL-APT-Repository#
credativ-pg-migrator ist im PostgreSQL-Community-Repository apt.postgresql.org enthalten —
die PostgreSQL-APT-Wikiseite beschreibt, wie Sie es
unter Debian und Ubuntu einbinden.
Eine Migration ausführen#
credativ-pg-migrator \
--config=./test_database.yaml \
--log-file=./test_database_$(date +%Y%m%d).log \
--log-level=INFOFertige Konfigurationsbeispiele für jede unterstützte Quelldatenbank liegen im Repository unter
docs/configs/ —
kopieren Sie das Beispiel Ihrer Quelldatenbank, passen Sie die mit >>> ADJUST markierten
Zeilen an und starten Sie den Lauf.
Architektur#

Das Werkzeug verbindet sich mit der Quelldatenbank, liest das Datenmodell aus, erzeugt daraus PostgreSQL-kompatible Strukturen und schreibt sie in die Zieldatenbank — koordiniert von einem zentralen Orchestrator, der parallele Worker steuert. Mehr dazu auf der Dokumentationsseite.
Open Source, mit professionellem Support#
credativ-pg-migrator steht unter der
GNU General Public License v3
und wird offen auf GitHub entwickelt. Entwickelt und gepflegt wird das Projekt von der
credativ GmbH, einem Beratungs- und Engineering-Unternehmen für
PostgreSQL und Open Source.
Wenn Sie eine Datenbankmigration planen und professionelle Unterstützung wünschen — von der Analyse Ihres Quellsystems bis zur Durchführung der Migration — sprechen Sie uns an.
Mitmachen#
Fehlerberichte, Feature-Wünsche und Pull Requests sind willkommen. Ob eine Quelldatenbank, deren Connector noch Lücken hat, oder ein Sonderfall, an dem die Konvertierung scheitert — ein Issue auf GitHub ist der richtige Anfang. Details finden Sie unter Mitmachen.