Changelog
Here is the highligt of new features, fixes and improvement for each major version. See features for overall progression of PostgreSQL Migrator.
v1.0.0-rc.1¶
Release 7th may 2026.
- breaking: Drop
Reportsentry frompg_migrate.toml. - breaking:
reportcommand is renamed as_buildwith changed arguments.
CLI:
- Read pg_migrate.auto.toml.
- init: Stop generating sample report.
- report: Renamed as _build.
Inspect:
- Gracefully handle no schema found.
- ora: Ignore MDSYS database triggers.
- ora: Inspect column statistics.
Convert:
- Fix override of generated column expression.
- Update to transqlate 0.8.0.
Dump:
- Dump generated column expression (virtual and stored).
- Dump NOT NULL constraint.
- Dump comment on table, table column and indexes.
UI:
- Choose address and port with –listen or PGMLISTEN.
- Diagnostic oriented UX.
- Implement master-details navigation.
- Tab-based browsing.
- Overview tab on component details.
- Explicit migration status.
- Show CHAR unit for VARCHAR2.
- And a lot more!
1.0.0-beta.13¶
Released 17 avril 2026.
Inspection:
- Fix routine overloads identification.
- Inspect views, types and routines owner.
Conversion:
- Transpile virtual column expressions.
- Override table virtual column expression, functionnal index column expression and check expressions from TOML.
Dump:
- Reassign and drop owned objects before dropping roles with
dump --clean. - Export owner on schema, sequences and table unless
dump --no-owner. - Dump functionnal indexes.
- Dump table virtual column.
- Log do dump.log, dump-schema.log, dump-pre.log, dump-data.log or dump-post.log depending on dumped section.
Oracle:
- Inspect index DESC column as regular column, not functionnal expression.
- Inspect database and schema triggers.
- Inspect database links and jobs owner.
- Respect VARCHAR2(n CHAR) length as character length.
MySQL:
- Fix routines lists not reset on refresh.
1.0.0-beta.12¶
Released 1st april 2026.
Dump:
- Fix deadlock between identities restart and table constraint.
- Fix boolean conversion of unconfigured column.
- New
dotdump format: export Dump plan as dot graph. - Profile inspect and dump with Perfetto.
- Priorize bigger table and bigger rows.
- Track progression by size instead of by row count.
Command:
- Fix empty log file when stderr is not a tty.
UI:
- Move navigation components into a dedicated side panel.
1.0.0-beta.11¶
Released 19th march 2026.
BREAKING CHANGES: Dump.Exclude is no longer supported. Use Dump.Objects with ! prefix instead.
See pg_migrate.toml and Convert documentation for details.
Inspect:
- Restore partial inspect.
Audit:
- Annotate foreign key type mismatch.
Convert:
- Fail if TOML has bad path in
[[Convert.Rules]]. - Configure of global true values for string-to-boolean conversion.
- Case-insensitive type matching for value and default conversion.
- Reset statistics in target catalog.
- Accept partial transpilation of expression.
Dump:
- Fix panic in dump from Oracle up to 12.1.
- Accept up to 8 COPY failures before giving up copying table data.
- Continue constraint migration on previous constraint error.
- Log PostgreSQL error hint and detail.
- Recycle PostgreSQL connections after each task.
- Reduce source connection usage.
- Increase inlined LOB chunk: consume more memory for faster copy.
- Implement dumping binary data to
bytea. - Select objects with dump command argument.
- Wait for data before setting table defaults.
MySQL:
- Annotate long columns.
- Compare catalog size to sum of tables data and indexes size, and update if greater.
Oracle:
- BREAKING CHANGE: move temporary tables in their own list.
- Gracefully handle missing privilege on
V$INSTANCE. - Fix Oracle 11g
V$INSTANCEquery. - Inspect PRODUCT_COMPONENT_VERSION view.
- Exclude schema and database triggers from inspection (need revision).
UI:
- Add for all Indexes and all Triggers in breadcrumb.
- List sub-component by type in one-click.
1.0.0-beta.10¶
Released 12th march 2026.
Ship unversionned artifacts on release page. You can now use a permalink to latest package like:
# dnf install https://gitlab.com/dalibo/pg_migrate/-/releases/permalink/latest/pg-migrate_linux_amd64.rpm
- Fix arch package overwritting shared directories.
- Ship Alpine apk package.
Convert:
- Optionnally rename all indexes.
- Quote columns identifiers in check constraints expressions.
Dump:
- New
dump --formatCLI option similar topg_dump --format. - Format
stdoutrenamed toplain. - Dropped
filesdump format. - New
treedump format. - Customize output file or directory with
--fileoption. - Annotate duplicate relation identifiers (sequence, table, views, indexes, etc.).
- Recycle connections for each dump tasks.
- Dropped
-jocker inDump.Exclude. Use%.
UI:
- Fix annotations display in tooltip.
MySQL:
- Ignore implicit indexes for unique constraints.
- Ignore
NULLdefault. - Convert
decimal unsigned,double unsignedandfloat unsignedproperly.
1.0.0-beta.9¶
Released 24th february 2026.
BREAKING CHANGES: Scores option in TOML has a new format.
See pg_migrate.toml and Audit documentation for details.
- Ship Arch Linux package.
- Move to Go 1.26.
- Drop pre-release warning.
- Write inspect, convert and dump log messages in a file.
- Reduce error output in console.
MySQL:
- Fix false positive non literal DEFAULT annotation on enum column.
Oracle:
- Fix materialized view index definition.
- Fix LOB value order.
- Isolate package init section for audit.
- Annotate Index organized table.
- Annotate constraint named with table name.
UI:
- Search object by catalog path.
- Fix typing
/impossible in search field.
Engine:
- Fix PostgreSQL COPY error handling.
- Fix escaping anti-slash for COPY text format.
- Fix rename foreign key and check from pg_migrate.toml when source name is generated.
- Include last batch of COPY in throughput counter.
- Skip collecting statistics on inspect.
- Restore offline re-audit.
- Optionnaly rename all constraints.
- Identify all migration issues with a string in pg_migrate.toml
Scoresoption. - Preserve HTML comment in markdown report.
1.0.0-beta.8.1¶
Released 2nd february 2026.
UI:
- Fix copy button to copy object path instead of breadcrumb path.
1.0.0-beta.8¶
Released 29th january 2026.
MySQL/MariaDB:
- Fix MariaDB version inspection on AWS RDS. Thanks to @vlacour for the report.
- Rename only constraint with generated name.
Engine:
- Convert and dump check constraints.
- Limit the length of the generated name of the constraints.
UI:
- Right sidebar behavior updated: fixed on desktop, off-canvas on small screens with toggle button.
- Add button to copy breadcrumb path.
- Add keyboard shortcut to open search dialog.
1.0.0-beta.7¶
Released 12th january 2026.
Oracle:
- Fix foreign key columns duplicate.
Conversion:
- Rename constraint named with table name.
Dump:
- Fix dumping foreign key to self.
UI:
- New properties tab.
- Review overview charts and layout.
- Highlight most frequent annotations in overview.
- Link to foreign tables.
- Browse components by annotation.
- Responsive behavior (compact left sidebar, move right sidebar to off-canvas, warning message on small screen).
1.0.0-beta.6¶
Released 19th december 2025.
Oracle:
- Inspect
V$INSTANCE. Requires new privilegeSELECT ON V_$INSTANCE. - Score package variables.
Engine:
- Dump foreign keys.
- Drop foreign key on partitionned table. Annotate unimplemented.
- Rename foreign keys.
- Fix schema rename propagation.
- Strict pg_migrate.toml parsing.
UI:
- Fix drawer annotation badge.
- Scope search to current catalog.
- Detail search results.
- Restyle drawer.
- Review outlier computation.
- Persist filter accross components lists.
- Browse all indexes or triggers.
- Show outliers and complexity distribution in overview.
1.0.0-beta.5¶
Released 5 december 2025.
YOU NEED TO REFRESH CATALOG
Run pg_migrate inspect –refresh before anything.
CLI:
dumpnow refuses to dump with pending annotations. Use--forceor[Dump] Forceto bypass.- Associate parsing annotations to object instead of root catalog.
- Preserve inspection and conversion annotations when auditing catalog.
Engine:
- Refactor catalog path to
<type>/<schema>.<name>(<signature>)likeTables/SAKILA.ACTORorFunctions/SAKILA.GET_CUSTOMER(NUMBER). - Attach triggers to table and view instead of globally.
- Migrate primary and unique keys to PostgreSQL.
- A lot of procedural and SQL parsing fixes and improvements.
- Inspect view updatablility.
- Deduplicate transqlate panics and parse errors.
Oracle:
- Merge Job and SchedulerJob object.
- Fix drop of routine overload.
- Convert
DATEcolumns astimestamp without time zone - Inspect constraint GENERATED.
MySQL/MariaDB:
- Inspect servers as Server, not DatabaseLink.
UI:
- Fix main components filtering.
- Fix duplicate line count of Packages.
- Improved performances.
- Show wait splash while initializing.
- Split line count between views and procedural.
- Faster search.
- Features views.
- New Materialized view icon.
- Format various numbers and counters.
- Show progress of component conversion instead of annotations resolution.
1.0.0-beta.4¶
Released 12nd november 2025.
- Fix resilience on transqlate panic.
- Annotate generic statement. They may contain Oraclism.
- doc: New install page.
Includes transqlate 0.6.6:
- Fix c-style comment lexing
- Fix panic on huge int
- Parse MySQL date_sub syntax.
1.0.0-beta.3¶
Released 7th november 2025.
Compatibility:
- Dump data from Oracle 11g and 12c.
- Inspect and convert MySQL and MariaDB column default expression.
Transqlate:
- Fix lexing huge number. Thanks to @songuyenus for the report.
- Fix lexing C-style comment. Thanks @Stedounet for the report.
- Parse MySQL
date_sub-date_addinterval expression.
Engine:
- Full command line completion for bash, fish and zsh.
- Oracle: Increase LOB chunk size to 128k, increasing performances.
- Improve init command failure handling.
- init command now accepts to reinitialize an existing project.
- Effectively implement –skip-date-warning CLI flag.
1.0.0-beta.2¶
Released 23rd october 2025.
Compatibility:
- Oracle 11g and 12c inspection. No dump yet.
- New source system: MariaDB 10.5 up to 12.
Inspection:
- Optimize Oracle queries.
- Refresh version on inspection.
Dump:
- Inline small LOBs.
- Optimize LOB chunking.
UI:
- Link source object to one or more converted objects.
- Link converted object to its source object.
- Show annotations of all objects per schema.
- Various improvement and consistency.
- Truncate long breadcrumbs.
1.0.0-beta.1¶
Released 22nd september 2025.
Compatibility:
- Linux 2.6.32 or later.
- deb and rpm packages.
- Support migration from Oracle Database 18c to 23ai.
- Support migration from MySQL 8.4 and later.
Audit:
- Modern Web model browsing interface with search.
- Generate reports with advanced filter on JSON data.
- Configurable migration scores.
Conversion:
- Migrate roles, schemas, sequences, tables, identity columns, indexes.
- Rename anything.
- Optionnaly lower object identifier.
- Customize column type conversion.
- Convert string or integer column to boolean.
- Optionnaly strip spurious nul bytes in strings.
- Find Oraclisms/MySQLisms in expressions, views and routines using transqlate.
Dump:
- Exclude objects from migration.
- Fast and portable data migration using efficient and parallelized COPY.
- Chunk Oracle LOBs and MySQL long columns.
- CLI with progress bars, ETA and real-time throughput.
- Dump to stdout, files or directly in PostgreSQL.