Zum Hauptinhalt springen

credativ-pg-migrator

credativ-pg-migrator Logo

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-migrator

Das 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=INFO

Fertige 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
#

Architektur von credativ-pg-migrator

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.