Skip to content

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 Reports entry from pg_migrate.toml.
  • breaking: report command is renamed as _build with 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 dot dump 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$INSTANCE query.
  • 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 --format CLI option similar to pg_dump --format.
  • Format stdout renamed to plain.
  • Dropped files dump format.
  • New tree dump format.
  • Customize output file or directory with --file option.
  • Annotate duplicate relation identifiers (sequence, table, views, indexes, etc.).
  • Recycle connections for each dump tasks.
  • Dropped - jocker in Dump.Exclude. Use %.

UI:

  • Fix annotations display in tooltip.

MySQL:

  • Ignore implicit indexes for unique constraints.
  • Ignore NULL default.
  • Convert decimal unsigned, double unsigned and float unsigned properly.

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 Scores option.
  • 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 privilege SELECT 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:

  • dump now refuses to dump with pending annotations. Use --force or [Dump] Force to 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>) like Tables/SAKILA.ACTOR or Functions/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 DATE columns as timestamp 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_add interval 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.