Zum Hauptinhalt springen

Changelog

Inhaltsverzeichnis

Die Highlights jedes Releases, gruppiert nach Minor-Version. Das CHANGELOG.md im Upstream-Repository enthält die vollständige, ausführliche Historie — einschließlich der Analyse hinter jeder Korrektur — und jedes getaggte Release ist auf der GitHub-Releases-Seite aufgeführt.

  1. 0.16.0

    August 2026

    Grundlegende Überarbeitung von Informix und eine Korrektur beim JDBC-Beenden

    • JDBC-Connectoren hängen sich beim Beenden nicht mehr auf. Worker-Threads lösen sich nun gemeinsam mit ihrer Verbindung von der JVM, sodass eine Migration, die früher nach der Ausgabe ihrer Zusammenfassung endlos hing, in weniger als einer Sekunde abschließt.
    • Informix: Systemkatalog wird nicht mehr migriert. Die Erkennung trennt jetzt Benutzerobjekte von den Objekten des Servers selbst — eine Testdatenbank ging von 534 Routinen und 89 Tabellen auf die 17 Routinen und 24 Tabellen zurück, die das Schema tatsächlich definiert.
    • Informix: Viele Objekttypen werden überhaupt erst migriert. Korrekturen für BSON/JSON-Spalten, Collection- und Row-Typen, INTERVAL-Spalten, absteigende und funktionsbasierte Indizes, Check-Constraints, MERGE-Anweisungen, globale Variablen und Trigger — von denen mehrere zuvor die gesamte Planungsphase scheitern ließen.
    • Informix: MONEY wird als NUMERIC migriert — unter Beibehaltung von Precision und Scale, statt als der deutlich abweichende MONEY-Typ von PostgreSQL.
  2. 0.15.0

    Juli 2026

    T-SQL-Parser und Tiefe der Validierung

    • Die Validierung vergleicht die Struktur, nicht nur die Daten. Die Anzahl von Spalten, Indizes und Constraints wird jetzt auf beiden Seiten ermittelt, in den Protokolltabellen validation_indexes und validation_constraints festgehalten und im Markdown-Bericht als direkt gegenübergestellte Tabellen dargestellt. Jede Abweichung lässt die Validierung der Tabelle fehlschlagen.
    • Härtung des Parsers für Sybase ASE / T-SQL. Temporäre #-Tabellen werden auf pg_temp abgebildet, aus EXEC @id = func(...) wird eine echte PL/pgSQL-Zuweisung, veraltete Transaktionsdirektiven und GOTO-Label werden neutralisiert, und Cursor-Definitionen über mehrere Zeilen werden korrekt geparst.
    • Oracle nutzt nun python-oracledb und ersetzt damit das veraltete cx_Oracle. Der Thin-Modus ist die Voreinstellung, sodass der Oracle Instant Client nicht mehr erforderlich ist.
    • Erschöpfung der Verbindungen bei der Validierung behoben — die Prüfsummen-Engines trennen die langlebigen Verbindungen des Validators nicht mehr mitten in der Schleife.
  3. 0.14.0

    Mai 2026

    Konfliktbehandlung und ein SQL-Parser für Sybase

    • data_conflict_action in table_settings ergänzt — wählen Sie replace, merge_keep_target, merge_keep_source oder skip, wenn Daten sowohl in der Quell- als auch in der Zieldatenbank vorhanden sind. In allen Connectoren umgesetzt.
    • table_name akzeptiert Listen und reguläre Ausdrücke, sodass eine einzige Direktive nun viele Tabellen gleichzeitig abdecken kann — einheitlich für abweichende Batch-Größen, Chunking und Schalter zur selektiven Migration.
    • Sybase ASE hat einen echten SQL-Parser erhalten für Stored Procedures — denselben, der zuvor nur für Views genutzt wurde — zusammen mit einer langen Liste von Korrekturen bei der T-SQL-Konvertierung, die IF/ELSE-Verschachtelungen, UNION, PRINT, CONVERT-Datetime-Styles und Inline-Bedingungen abdecken.
  4. 0.12.x

    März – April 2026

    Parallele View-Migration und DB2-z/OS-Aliase

    • Views werden parallel migriert über einen Thread-Pool, wobei Alias-Views bewusst erst verarbeitet werden, nachdem alle regulären Views abgeschlossen sind, um Abhängigkeitskonflikte zu vermeiden.
    • Die DB2-Alias-Auflösung kennzeichnet das Ziel eines Alias im Katalog nun als TABLE oder VIEW und verhindert damit zirkuläre Abhängigkeiten zwischen View und Alias.
    • Der CSV-Import verarbeitet Komma-Dezimaltrennzeichen und führt Felder nur dort zusammen, wo die Zielspalte ein NUMERIC/DECIMAL/FLOAT mit Nachkommastellen ist.
    • Korrekturen für Check-Constraints (#57), das Auslesen von Sequenzen bei Informix, MySQL und Sybase (#63), die View-Migration in den meisten Connectoren (#65) sowie die Ersetzung von Datentypen bei PostgreSQL-nach-PostgreSQL-Migrationen (#67).
  5. 0.11.x

    November 2025 – März 2026

    Offline-DDL-Anbindung und IBM DB2 z/OS

    • Neuer Konnektivitätstyp ddl — Datenbankobjekte können statt aus einer Live-Verbindung aus DDL-Dateien gelesen werden, konfiguriert über ddl.directory.
    • Unterstützung für IBM DB2 z/OS durch den neuen Connector ibm_db2_zos ergänzt; der bestehende DB2-Connector wurde in ibm_db2_luw umbenannt.
    • Die Sybase-ASE-Konvertierung wurde neu geschrieben — mit einem SQL-Parser für Kontrollfluss, Cursor und Datentypen sowie Unterstützung für die veraltete Outer-Join-Syntax (*= / =*), benutzerdefinierte Typen, OUTPUT- zu INOUT-Parameter und @@rowcount über GET DIAGNOSTICS.
    • MS SQL Server hat eine View-Konvertierung mit korrekten Datentypen, eine Konvertierung benutzerdefinierter Typen sowie eine erste, brauchbare Version der Konvertierung von Triggern, Funktionen und Prozeduren erhalten.
    • Erste Version der Benutzerdokumentation im Verzeichnis docs/ ergänzt.
  6. 0.10.x

    Oktober – November 2025

    Informix-LOB-Import in großem Umfang

    • Paralleler LOB-Import für Informix. Informix exportiert jedes CLOB/BLOB in eine eigene Datei (max. 2 GB), auf die Zeiger in der Haupt-UNL-Datei verweisen. Eine sequenzielle Verarbeitung war bis etwa zehn Dateien praktikabel; eine konfigurierbare Anzahl paralleler Worker bewältigt nun die Hunderte von Dateien, die reale Tabellen erzeugen.
    • Mehrere LOB-Spalten pro Tabelle werden unterstützt, und NULL-LOB-Werte werden erkannt, gleich ob sie als Platzhalter 0,0,0 oder als literales NULL auftreten.
    • Die UNL-nach-CSV-Konvertierung wurde gehärtet gegen abschließende Backslashes, Windows-Zeilenenden (\r\n) und escapte Trennzeichen.
    • MySQL hat ODBC- und JDBC-Konnektivität erhalten — zusätzlich zum bestehenden nativen Treiber.
  7. 0.9.x

    Juni 2025

    PyPI-Distribution und sqlglot-basierte View-Konvertierung

    • Veröffentlichung auf PyPI über pyproject.toml, wodurch pip install credativ-pg-migrator zum Standardweg der Installation wurde.
    • sqlglot für die View-Konvertierung übernommen, beginnend mit Sybase ASE, was die Erfolgsquote der View-Migration deutlich erhöht hat.
    • names_case_handling (lower, upper, preserve) wird nun beim Erzeugen von CREATE-Anweisungen berücksichtigt — Legacy-Engines sind sich über die Groß- und Kleinschreibung von Bezeichnern uneinig, und Anwender müssen die Wahl haben.
    • Daten werden über eine explizite Spaltenliste ausgewählt statt über SELECT *, sodass sperrige Typen (Geometrie, Sets, LOBs, benutzerdefinierte Typen) bereits in der Quellabfrage gecastet oder transformiert werden können.
    • Die Analyse vor der Migration wurde begonnen — sie automatisiert die Fragen, die sonst jedem Kunden zu seiner Quelldatenbank gestellt werden.
  8. 0.8.0

    Juni 2025

    Erstes öffentliches Release

    • Das erste öffentliche Release von credativ-pg-migrator, bei dem die Connectoren in ein eigenes Modulverzeichnis verschoben wurden.

Ältere Releases
#

Versionen vor 0.8.0 liegen zeitlich vor der Veröffentlichung. Ihre Historie ist im vollständigen Changelog erhalten.