Skip to main content
manufacturing

Legacy Database Modernisation & Data Migration

How Rogue profiled a 6.5M-record, 138-table legacy MS SQL Server and MS Access ERP and rebuilt it as a clean Neon Postgres platform for a UK refrigerated-van manufacturer.

Visit CoolKit
6.5M
Records profiled

6.5 million records across a 138-table legacy MS SQL Server and MS Access ERP, mapped and profiled in full

35,126
Customers migrated

Customer records loaded into the new normalised platform at first production cutover, dead accounts archived not dropped

52,000 parts
Parts catalogue

Multi-level bill-of-materials inventory of around 52,000 parts restructured for clean reporting

Under 1%
Reconciliation residual

Checksum-reconciled migration held unresolved records under 1%, every exception quarantined and traceable

The Challenge

CoolKit ran roughly 35,000 customers on a 138-table Microsoft SQL Server and MS Access ERP holding about 6.5 million records: undocumented, fragile, with business rules buried in SQL triggers and Access VBA and a widest table of 202 columns.

The Solution

We profiled the legacy stack, extracted its trigger and VBA business rules, and rebuilt it as a clean normalised schema on Neon Postgres (Drizzle ORM, TypeScript, Next.js), then migrated customers, parts, quotes and builds through a reconciled, quarantine-safe sync engine at first production cutover.

The Challenge: A 6.5M-Record ERP No One Could Safely Change

CoolKit runs a business of roughly 35,000 customers on a legacy stack: a 138-table Microsoft SQL Server Express database driven by a Microsoft Access VBA front end, holding about 6.5 million records built up over years of trading. The structure had grown organically and undocumented, with business rules buried inside SQL triggers and Access VBA. The widest core table alone carried 202 columns.

That made everyday work fragile. Reporting needed specialist knowledge of the schema, modern tools could not integrate cleanly, and no one could change the structure without risking cascading failures.

What We Built: A Clean Platform on Neon Postgres

We started with deep profiling, mapping every table, extracting the business rules embedded in triggers and VBA, and separating live data from cruft left by systems long retired. That audit informed a ground-up redesign: a clean, normalised schema on Neon Postgres, built with Drizzle ORM, TypeScript and Next.js as the CoolerKit platform.

To move the data safely, we built a migration and sync engine with 14 entity translators, a dead-letter queue with replay, checksum-based reconciliation, and an orphan-quarantine table so no record is ever silently dropped. Soft-deleted customers are imported as archived, not discarded.

The Result: A Reconciled First Cutover

The first production cutover loaded the hot entities into the new platform: 35,126 customers, 53,918 contacts, 63,514 quotes and 30,315 builds, alongside a restructured catalogue of around 52,000 parts. Reconciliation held the unresolved residual under 1%, every exception quarantined and traceable rather than lost.

This is a live, in-progress modernisation. The legacy SQL Server and Access ERP still run in parallel while the remaining entities and write-back are migrated, so the business keeps trading on a data foundation it can finally trust.

If your business is running on a legacy database that has become a liability, let’s talk.

Facing similar challenges?

Tell us what you're working on and we'll show you how we'd approach it.