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.
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:
MONEYwird alsNUMERICmigriert — unter Beibehaltung von Precision und Scale, statt als der deutlich abweichendeMONEY-Typ von PostgreSQL.
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_indexesundvalidation_constraintsfestgehalten 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 aufpg_tempabgebildet, ausEXEC @id = func(...)wird eine echte PL/pgSQL-Zuweisung, veraltete Transaktionsdirektiven undGOTO-Label werden neutralisiert, und Cursor-Definitionen über mehrere Zeilen werden korrekt geparst. - Oracle nutzt nun
python-oracledbund ersetzt damit das veraltetecx_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.
- 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
0.14.0
Mai 2026
Konfliktbehandlung und ein SQL-Parser für Sybase
data_conflict_actionintable_settingsergänzt — wählen Siereplace,merge_keep_target,merge_keep_sourceoderskip, wenn Daten sowohl in der Quell- als auch in der Zieldatenbank vorhanden sind. In allen Connectoren umgesetzt.table_nameakzeptiert 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.
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
TABLEoderVIEWund 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/FLOATmit 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).
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 überddl.directory. - Unterstützung für IBM DB2 z/OS durch den neuen Connector
ibm_db2_zosergänzt; der bestehende DB2-Connector wurde inibm_db2_luwumbenannt. - 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- zuINOUT-Parameter und@@rowcountüberGET 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.
- Neuer Konnektivitätstyp
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 Platzhalter0,0,0oder als literalesNULLauftreten. - 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.
0.9.x
Juni 2025
PyPI-Distribution und sqlglot-basierte View-Konvertierung
- Veröffentlichung auf PyPI über
pyproject.toml, wodurchpip install credativ-pg-migratorzum Standardweg der Installation wurde. sqlglotfü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 vonCREATE-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.
- Veröffentlichung auf PyPI über
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.
- Das erste öffentliche Release von
Ältere Releases#
Versionen vor 0.8.0 liegen zeitlich vor der Veröffentlichung. Ihre Historie ist im vollständigen Changelog erhalten.
