How I migrated 10,000 files into a sane folder structure
A one-time Northwind Drive cleanup that actually stuck — naming rules enforced by script.
By Awadesh Madhogaria · Published Oct 16, 2025
Northwind’s Drive was ten years of good intentions and no system. Finding a file meant guessing which of several plausible folders it might be in.
A decade had produced a very specific kind of chaos: files loose in My Drive
and never filed anywhere, files spread across six different Projects folders
with none of them canonical, and files named things like
final-v2-FINAL-actually-final.docx. There was no structure to fix — there was
an absence of structure to impose. It was a quiet, daily tax: nobody could find
anything on the first try, and every file someone needed meant a search, a guess,
and often a “can you just send it to me” message. Multiply that across a team and
a decade, and the disorder had a real price.
I have seen these cleanups before, and they usually fail the same way: a heroic weekend, a tidy Drive, and total regression within a month. I wanted one that stuck.
How the migration worked
I did not start by moving files. I started by deciding where they should go, then let the script propose the moves before anything actually happened:
- Decide a canonical structure:
clients/{name}/{year}/{project}/. - Write a script that walks every file and proposes a destination per file — as a dry-run.
- The script writes a proposal row per file, showing current location and proposed destination.
- Read down the proposal sheet and correct the destinations the script got wrong.
- Only once the sheet looked right, run the migration for real.
- Set up Enforce file naming and tagging governance to prevent regression.
The dry-run was the whole trick. No file moved until a human had signed off on where it was going, which is what kept a 10,000-file migration safe.
What I learned, and what stuck
The big lesson was about pace. You cannot retrofit a 10-year mess in one session, and trying to is exactly how these projects fail. The dry-run alone took two weekends — most of it spent eyeballing outliers rather than running code. That slowness was the point: it was where the mistakes got caught before they became real moves.
A cleanup is also worthless if it regresses, and the part that lasted was the naming rule, not the tidy folders. Six months on, Northwind’s Drive sits at 95% compliance — not because anyone is being careful, but because the governance script catches anyone who slips, every time. All 10,000 files are now in one predictable structure people can guess, with exactly one place per file and no more “which Projects folder?”.
A one-time cleanup always regresses. A cleanup plus an enforcement script is the only kind that stays clean — fix the mess once, then defend it forever.