Sequences and identity
Collapses PostgreSQL standalone sequences into MySQL
AUTO_INCREMENT columns and sets the high-water
value above the loaded maximum key value before the
application resumes inserts - standard MySQL has no
separate sequence object to manage.
Indexes and constraints
Recreates PostgreSQL partial-index semantics on MySQL where
possible (filtered storage logic, generated columns), and
reports GIN / GiST / exclusion constraints that have no
direct MySQL analogue in the migration log so the business
rule can be rebuilt with MySQL full-text / spatial indexes
or application logic.
Application SQL portability
PostgreSQL-specific query syntax (RETURNING,
ON CONFLICT, DISTINCT ON,
ILIKE, array and jsonb operators,
double-quoted identifiers) does not run unchanged on MySQL.
DBConvert moves the schema and data; the application SQL
layer is its own task - usually a search-and-replace
pass plus a test cycle.
Procedural code stays behind
The migration covers tables - their fields, types, defaults,
and indexes - and the foreign keys between them. PL/pgSQL
functions, triggers, rules, custom operators, and
extension-backed behavior (PostGIS, hstore, pgvector) stay
in the source and are rewritten by hand in MySQL's
stored-procedure dialect, or moved into application code.
On most schemas this is a small share of the work, and it is
rewrite work on any route.