← Quiz Tales|2026-05-03
quiz tales

I ran a migration directly against the live database and wiped six weeks of my son's scores.

He was remarkably chill about it. Seven-year-olds have a healthier relationship with data loss than developers do. He asked if we could "just fix it" and went outside to play.

I was not chill.

The technical execution was fine. The migration did exactly what I told it to do. The problem was that I hadn't tested whether what I told it was correct before pointing it at data I'd promised to keep.

Setting up a staging environment took about an hour. I now have a separate copy of the database structure to run schema changes against before anything touches production. It's not glamorous. It's just a second database and a branch.

But it changed how I think about the whole project. My son's scores are production data. I can't treat the infrastructure like a prototype anymore when there's a real person keeping track of their progress in it.

The lesson isn't "use staging environments." Engineers know that. The lesson is that you only really feel the stakes when you lose something real. I lost it. He forgave me. I won't do it again.

The Staging Revelation

Aarav's High Scores

Player: Aarav
Maths2,840
Science1,920
Vocab3,560

Run migration to:

← Back to console