How DBConvert handles the PostgreSQL → Firebird differences
DBConvert handles schema, mapping, and data transfer in the
wizard. PostgreSQL-specific types, generated keys, arrays,
JSON, identifiers, extensions, and procedural SQL still need a
review before Firebird becomes the write target.
PostgreSQL serial, bigserial, identity
columns, and standalone sequences map to Firebird identity
columns or sequence-backed defaults depending on target version
and policy.
Arrays, ranges, enums, domains, network types, jsonb,
and extension-backed types need a Firebird storage policy:
text, lookup tables, normalized child tables, or application
logic.
PostgreSQL UTF8 text needs a Firebird character-set
decision, and quoted mixed-case identifiers should be normalized
or preserved consistently before application testing starts.
ILIKE, RETURNING, ON CONFLICT,
DISTINCT ON, :: casts, array operators,
JSON operators, and PostgreSQL functions do not run unchanged in
Firebird SQL.
DBConvert migrates tables, fields, supported views, indexes,
and foreign keys. PL/pgSQL functions, triggers, rules,
extension behavior, row-level security, and embedded
application SQL remain a manual Firebird PSQL rewrite.
Type mapping checkpoints
| PostgreSQL |
Firebird |
Notes |
smallint / integer / bigint |
SMALLINT / INTEGER / BIGINT |
Direct for signed ranges. |
numeric(p,s) |
DECIMAL(p,s) / NUMERIC(p,s) |
Preserve precision and scale. |
uuid |
CHAR(36) or VARCHAR(36) |
Confirm whether the application expects text UUIDs. |
text / varchar |
BLOB SUB_TYPE TEXT / VARCHAR |
Confirm Firebird character set and long-text storage. |
bytea |
BLOB SUB_TYPE 0 |
Binary payloads should be sampled after import. |
timestamp / timestamptz |
TIMESTAMP |
Review timezone assumptions before flattening timestamptz. |
boolean |
BOOLEAN |
Direct on modern Firebird targets. |
json / jsonb |
BLOB SUB_TYPE TEXT or VARCHAR |
Firebird is not a drop-in replacement for PostgreSQL JSON operators. |
array, range, enum, domain |
policy-specific |
Usually text, lookup tables, normalized child tables, or inline column definitions. |
PL/pgSQL objects and PostgreSQL security - out of scope
DBConvert's migration covers tables (with their fields, types, defaults, and indexes),
views, and foreign keys. PL/pgSQL functions, triggers, rules, extensions, custom
operators, row-level security, and grants stay in the source and are rewritten manually
in Firebird PSQL - inventory them separately and rewrite them against the final Firebird
schema.