The Migration Framework for Firebird is a suite of tools and guidelines that automate much of Firebird version migration - metadata analysis, automatic fixes, and a folder-based conversion workflow. Proven on large estates (600+ servers migrated).

How it works

1. Metadata analysis

Automatic examination of database metadata backups produces a report of issues - split into problems the Framework can fix automatically and items that need manual attention.

2. Data migration

After metadata is verified (and adjusted if needed), drop legacy-format databases into the incoming folder and collect fully operational databases from the outgoing folder.

Built for enterprises with many databases across servers and sites - migrate fleets far faster than purely manual upgrades. For hands-on expert help on complex cases, see the migration service.

Pricing

Licensed per successful database migration. Trial includes 1 free migration. Optional support is $1,300. Need more than 10,000? Contact us.

1 migration

Single successful database migration after the free trial.

$99

Purchase

Up to 5

Pack for small upgrade batches.

$395

Purchase

Up to 10

Mid-size migration projects.

$690

Purchase
Migrations Price
Up to 50 $1,000 Purchase
Up to 250 $2,750 Purchase
Up to 500 $3,000 Purchase
Up to 10,000 $10,000 Purchase

Also available with capacity in Enterprise subscription plans and with HQbird tooling for multi-server estates.

Examples of automatic metadata fixes

The Framework analyzes and can automatically fix common incompatibilities in stored procedures, triggers, functions, packages, and views - for example:

  • SUSPEND without return (procedures)
  • CURRENT_TIMESTAMP / timezone-related usage → LOCALTIMESTAMP where appropriate
  • Reserved word LOCAL quoted as "LOCAL"
  • CURRENT_TIMESTAMP / CURRENT_TIME in computed fields and DEFAULT clauses → LOCALTIMESTAMP / LOCALTIME

PSQL example

Before

create or alter procedure sp_sample
as
begin
  insert into tablex (start_time, user, local)
    values (current_timestamp, current_user, 1);
  suspend;
end

After

create or alter procedure sp_sample
as
begin
  insert into tablex (start_time, user, "LOCAL")
    values (localtimestamp, current_user, 1);
  --suspend;
end

Dialect 1 → Dialect 3

  • Runs gfix for dialect migration
  • Double quotes in PSQL blocks changed to single quotes automatically
  • CURRENT_DATE (date and time in dialect 1) replaced with LOCALTIMESTAMP inside the database

Related resources