Modernization
Database migration: change engines without losing a single record
Licenses that go up at every renewal, unsupported versions or stored procedures nobody understands. We migrate the database with the real schema measured and every table reconciled before switch-over.
The problem
Data is the part that allows no mistakes
A data migration fails because of what you don't see: different data types, rules hidden in triggers and stored procedures, composite keys and historical data that doesn't meet today's rules. In the analysis of a railway system (client unnamed), the real schema had 159 tables, 1,238 columns, 155 foreign keys and 54 composite primary keys.
How we do it
From the measured schema to reconciled data
Measured schema
Tables, columns, keys, indexes, triggers and stored procedures are inventoried from the real database.
Database logic specified
What procedures and triggers do is documented, and we decide whether it moves to the new engine or to the application.
Data reconciliation
Every table is reconciled between source and target with counts and comparisons before switch-over.
Reversible switch-over
The switch-over is rehearsed, the way back is defined, and only then does the operation move.
Illustrative scenario
A payroll system on Oracle with licenses up for renewal
Imagine a payroll application on Oracle, with much of its logic in stored procedures and a license renewal coming up.
- The schema is measured and the stored procedures the application uses are inventoried.
- The procedures are specified with tests and ported to PostgreSQL or to the application.
- Trial loads are run and each table is reconciled until the results match.
- The switch-over is rehearsed and carried out in an agreed window, with a defined way back.
Illustrative scenario: A hypothetical example to explain the method: it does not describe a client or a measured result.
What you keep
Reconciled data and a documented schema
A data dictionary of the real schema, repeatable migration scripts and table-by-table reconciliation reports.
Frequently asked questions
Does the application have to change too?
It depends on how much logic lives in the database and how the application accesses it. The inventory shows this before quoting.
Do operations stop?
The database switch-over happens in an agreed window that has been rehearsed beforehand, with a defined way back.
Do you need my real data to start?
No. For the measured sample the database structure is enough; data is used later, in the trial loads, under the access controls your company defines.
Next step
Start with a measured sample: 5 to 10 screens of your system turned into a verifiable specification, with tests and an inventory of differences.