automationdata migrationinternal tools

Archive first, migrate less: escaping a legacy platform without losing 15 years

I recently moved a marketing agency off Quickbase, a platform holding 15 years of their operational history: 537,000 records and 53 GB of attachments. The instinct on projects like this is to migrate everything to the new system. That instinct is wrong, and it is why so many migrations stall for a year and then get quietly cancelled.

The move that works is simpler: archive almost everything, migrate almost nothing.

Two kinds of data live in every old system

After 15 years, maybe two percent of the records in a legacy platform are part of anyone’s active work. The rest is history: closed projects, old clients, finished campaigns. The team does not work in that data, but they reach for it a few times a month, and losing it is unacceptable.

Those are two different problems with two different solutions:

  • History needs to be findable, not editable. It belongs in a verified, searchable archive, not in your shiny new workspace.
  • Active work needs to be usable. It belongs in the tool the team already lives in, mapped to how they work now, not how the old system worked in 2011.

Flooding a new tool with half a million dead records ruins it on day one. Search stops meaning anything, and the team learns to distrust the new system before they have started using it.

Verify the export like the audit depends on it

The export is the step you cannot redo after the old subscription ends, so it gets the paranoia. My pipeline pulled every table and attachment, then checked itself: record counts per table against the source, file counts and sizes against the attachment manifest, and spot-check hashes on the files. Every run produced a report a human could read.

A migration is not “done” when the data lands. It is done when a script has proven that what landed matches what left.

If your export process cannot tell you exactly what it got and what it missed, you do not have an export. You have a hope.

Make the archive a product, not a folder

A pile of CSV files on a drive is where history goes to die. The archive that works is a small self-hosted viewer: every record browsable, every attachment one click away, full-text search across all of it. It took a fraction of the effort of a full migration, and it means the answer to “can we still look up that 2014 project” is yes, forever, for the cost of a tiny server.

The active slice, the two percent, got real treatment: a schema-mapped loader that translated old structures into the team’s existing Notion workspace, with the fields renamed and reshaped for how they work today.

The pattern travels

Nothing here is specific to Quickbase or Notion. Any aging platform holding years of your operations can be unbundled the same way: verified export, searchable archive, minimal migration of live work. The expensive part is not the code. It is deciding, honestly, how little actually needs to move.

If you are staring down a legacy system with more than a decade of your business inside it, this is the shape of the way out. Get in touch if you want help drawing the line between archive and active.