~/mesha-vegas$
$ cd ../

2026-02-19

Le jour où j'ai cassé la production

Comment un simple `UPDATE` sans `WHERE` m'a appris plus en 5 minutes que 6 mois de tutoriels.

  • #post-mortem
  • #production
  • #leçons

Le jour où j'ai cassé la production

Il était 14h32 un mardi. Je m'en souviens parce que Slack a explosé exactement 30 secondes après mon ENTER.

Le contexte

Un ticket simple : mettre à jour le statut d'un utilisateur. J'ouvre la console SQL de prod (déjà une erreur), je tape ma requête :

UPDATE users SET status = 'inactive';
-- WHERE id = 'xxx';  ← oublié

12 847 utilisateurs désactivés en une seconde.

La panique

Mon cœur s'est arrêté. J'ai regardé l'écran. J'ai relu. J'ai compris. J'ai prévenu mon lead immédiatement — c'est la seule chose que j'ai bien faite ce jour-là.

La résolution

  • 14h33 : alerte au lead
  • 14h35 : restauration du backup point-in-time
  • 14h47 : tout est revenu à la normale
  • 15h00 : post-mortem démarré

Personne ne m'a crié dessus. Le CTO m'a dit : « Bienvenue dans le club. Maintenant écris le post-mortem. »

Les leçons

  1. Toujours BEGIN; avant un UPDATE manuel. Toujours.
  2. La prod n'est pas un terrain de jeu. Passe par une migration.
  3. Avouer vite > essayer de cacher. Le temps c'est de l'argent (et des données).

Depuis, j'ai un alias shell : psql-prod me demande deux fois si je suis sûr.