845Fermer847
MeowcateLe 07/10/2016 à 16:08
Bon euh...
Comment dire ?

Je reçois un bug dans le tracker, "blablabla, ces données ne sont pas bonnes sur nos commandes passées, pouvez-vous faire une update dans la base de données dans le cas où le statut est ainsi et la date ainsi ?"

Donc je fais une petite update SQL, avec la condition qui va bien :
set statut = E where statut in (A, B, C) and date < DRésultat, 360 lignes modifiées.

Et deux heures plus tard, mon collègue me dit, à propos du bug qu'il a pourtant remarqué que je m'étais attribué la correction, qu'il a fait la modif demandée par le client.
Ce à quoi je lui réponds que ça n'a servi à rien, puisque les données ont été changées il y a peu. Ah mais non, répond t-il, il y a eu... plus de 4600 lignes modifiées.
J'ai une petite crainte, et demande à voir sa requête :
set statut = E where statut = A or statut = B or statut = C and date < D
Vous la voyez la connerie ? au lieu de (A or B or C) and D, on a A or B or (C and D)
Et hop, 4600 lignes de commandes au statut modifié, dont le statut initial est maintenant inconnu.
Bon, on va se baser sur les logs pour retrouver l'évolution de ces commandes... mais les logs n'enregistrent que la création et modification des commandes, sans infos précises.
On n'a plus le choix, tant pis pour quelques dizaines de commandes dans la journée qui seraient désordonnées, sauvons le plus gros, récupérons le tout depuis le backup.
Sauf que notre prestataire n'a pas de backup pour ce site. Euh... pourquoi ? parce que le client fait ses propres backups. Ah bon...
Sauf que le client ne fait PAS de backup. Son ancien outil en faisait automatiquement, ce qui n'est pas le cas de l'outil qu'on lui a créé, n'ayant pas été demandé.

Et putain, de penser à tant de données importantes (quand on parle d'achat/vente, toujours) sont maintenant inexploitables à cause d'une requête écrite à la va vite par quelqu'un qui voulait corriger ce que j'avais déjà corrigé, merde quoi !

Enfin... on respire. Grâce à des irrégularités sur la façon dont fonctionne notre système, on a pu rétablir la quasi-totalité des commandes ratés. Mais MERDE quand même !