Auto-increment and sequences
Maps MySQL AUTO_INCREMENT to a PostgreSQL
identity column or sequence, and resets the sequence above
the current maximum key value after the bulk load -
so the next insert does not collide.
Unsigned integers
Widens MySQL unsigned integer types into PostgreSQL signed
equivalents (INT UNSIGNED → BIGINT,
smaller unsigned types to wider signed) and can attach a
CHECK (col >= 0) constraint to preserve the
non-negative guarantee where it matters.
Boolean and small-integer ambiguity
Treats MySQL TINYINT(1) as a boolean candidate
in the type-mapping review - pick PostgreSQL
boolean when the column is truly 0/1, or keep
smallint when it stores integer codes.
ENUM, SET, and JSON
Converts inline MySQL ENUM definitions to a
PostgreSQL enum type (or text column with
CHECK), maps SET to an array or
lookup-table policy you pick once, and routes MySQL
JSON to PostgreSQL jsonb by
default.
Identifier case and zero dates
Normalizes MySQL mixed-case identifiers to PostgreSQL's
lowercase folding (or preserves quoting as-is per your
policy), truncates names to PostgreSQL's 63-byte limit when
needed, and rewrites MySQL placeholder dates such as
0000-00-00 into NULL on load so
PostgreSQL's stricter date validation does not reject the
row.
Stored procedures, triggers, and functions - out of scope
DBConvert's migration covers tables (with their fields,
types, defaults, and indexes), views, and foreign keys.
MySQL stored procedures, functions, and triggers stay in
the source and are rewritten manually in PL/pgSQL -
MySQL's procedural syntax (DELIMITER,
SIGNAL, MySQL-specific error handling) has no
direct PL/pgSQL equivalent. Typically a small fraction of
the schema, but the one item the tool does not handle.