Skip to content
dbSlice®
Product Who it's for Performance Pricing Blog Guides Support Buy dbSlice

dbSlice / Migrate

Firebird to PostgreSQL migration, on Windows

Many business systems still run on Firebird. When it is time to move the data to PostgreSQL, dbSlice copies the tables from a Windows app or the command line, and keeps PostgreSQL in sync with Firebird while both systems run side by side.

Try it free on the Microsoft Store ↗ See pricing

At a glance

  • What it does: copies Firebird tables into PostgreSQL from a Windows app or the command line and keeps PostgreSQL in sync while both systems run.
  • Engines: Firebird to PostgreSQL; also SQL Server, MySQL, MariaDB, Oracle, SQLite or InterSystems IRIS, and back into Firebird.
  • What it does not do: convert stored procedures, triggers or PSQL code to PL/pgSQL, or detect deletes in incremental runs.
  • Free or paid: try it in the free Microsoft Store version (no license key); writing to a target database needs a Desktop or Server license.

Data, not code

dbSlice moves data: tables, rows, keys and types. It does not convert stored procedures, triggers or PSQL code to PL/pgSQL; plan that part separately. Most Firebird projects have business logic in triggers and procedures, and no tool converts all of it automatically.

dbSlice Synchronize tab

What dbSlice does

  • Connects to your Firebird server with the database path or alias, as your application does.
  • Reads in small batches, so the production database keeps serving its users.
  • Writes to PostgreSQL in bulk for initial and full loads.
  • Shows the target DDL. If the PostgreSQL table does not exist, dbSlice stops before writing and shows a CREATE TABLE translated from Firebird for your DBA to review and run. It does not create objects in your databases by itself.
  • Keeps ids safe. After rows are copied with their original ids, the PostgreSQL sequence can be behind the highest id. dbSlice warns and shows the command to move it forward.
  • Masks on the way when the copy is for development or testing.

Three Firebird details to plan for

1. Upper-case names. Firebird stores table and column names in upper case (CUSTOMERS, CUST_NAME). If you keep them in quotes in PostgreSQL, every query has to quote them forever. Most teams rename to lower case in the CREATE TABLE before running it. dbSlice matches columns by name without case, so CUST_NAME in Firebird fills cust_name in PostgreSQL with no manual mapping.

2. Character set. dbSlice connects with UTF-8. Older databases created with charset NONE or WIN1252 can stop with a "cannot transliterate" error on accented characters. Set the database's real charset in the connection string and run again.

3. Types to review in the suggested DDL.

  • BLOB SUB_TYPE 1 (text) becomes TEXT; binary BLOB becomes BYTEA.
  • Firebird 4 types DECFLOAT, INT128 and TIMESTAMP WITH TIME ZONE are suggested as VARCHAR. Change them to NUMERIC or TIMESTAMPTZ before you run the script.

Step by step

  1. Connect to Firebird (host, port, database path or alias, user) and to PostgreSQL.
  2. Pick the source table or write a SELECT, and the target table.
  3. Choose the key column used to match rows.
  4. Choose the mode: Initial load the first time, then Upsert or Insert new.
  5. Check before writing: Record Diff compares keys on both sides.
  6. Run it, or save it as a job and schedule it from the CLI. The Replicator copies a list of tables in one run, parents before children.

Keep both in sync until cutover

The Firebird application usually stays in production while the new one is tested. Schedule an Upsert job every night; with a column that only grows (a timestamp or a generator-fed id), each run reads only rows above the last value it saw. Deletes in Firebird are not detected by incremental runs, so plan a full comparison or a reload before the switch.

Also works for

Firebird to SQL Server, MySQL, MariaDB, Oracle, SQLite or InterSystems IRIS, and back into Firebird. For Oracle sources, see Oracle to PostgreSQL.

Try it on your own data: the free Microsoft Store version needs no license key.

Try free on the Microsoft Store ↗Buy dbSlice

Related guides

  • Firebird to SQL Server migration, on Windows
  • Oracle to PostgreSQL data migration, on Windows
  • Sync SQL Server to PostgreSQL
  • Firebird to SQL Server migration
dbSlice®

Professional data synchronization, migration and reconciliation — for Windows and Linux (Docker).

A Thinwork product

Product

Product Pricing Guides Linux (Docker) Release notes Free version (Microsoft Store) Support FAQ Renew maintenance CLI examples

Legal

Terms of Use Privacy Policy Refund Policy EULA

Company

THINWORK TECNOLOGIA DA INFORMACAO - LTDA
CNPJ 09.166.605/0001-21
Since 2007

Av. Paulista, 1471, Conj. 511, Anexo CP 1722
Bela Vista, São Paulo - SP, 01311-927, Brazil

Sales

+55 (11) 5197-7969 [email protected]

Support hours: Mon–Fri, 9:00–17:00 (UTC−3)

github.com/thinwork Follow @dbsliceapp
© 2026 dbSlice®. All rights reserved. Windows x64 · GUI + CLI · Linux (Docker) · Web

dbSlice® and the dbSlice pizza mascot logo are registered trademarks of Thinwork Tecnologia da Informação Ltda. with the Brazilian National Institute of Industrial Property (INPI).

All other product names, logos and brands are the property of their respective owners and appear here only to identify the systems dbSlice works with. dbSlice is an independent product, not affiliated with, sponsored or endorsed by them. Learn more