Une migration unique qui se rejoue n est pas unique
Le bloc qui inverse la semantique de vehicule_sur n etait pas garde : a chaque redemarrage il remettait les lignes anterieures a faux puis les six arbitrees a vrai. Le resultat restait juste — l operation est idempotente en sortie — mais elle ecrivait une ligne de journal trompeuse a chaque fois. Quatre en une journee, qui seraient apparues en annotation sur tous les tableaux Grafana comme autant de faux evenements. Garde sur la trace elle-meme : si la ligne de journal existe, c est fait. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj
This commit is contained in:
@@ -537,7 +537,16 @@ async function migrer(client) {
|
|||||||
// que le proprietaire a lui-meme arbitrees le 13/09 (cf. la reparation
|
// que le proprietaire a lui-meme arbitrees le 13/09 (cf. la reparation
|
||||||
// ci-dessus) : c'est une vraie confirmation humaine, seulement donnee de
|
// ci-dessus) : c'est une vraie confirmation humaine, seulement donnee de
|
||||||
// vive voix. La perdre serait jeter l'information qu'il a fournie.
|
// vive voix. La perdre serait jeter l'information qu'il a fournie.
|
||||||
const { rowCount: bascules } = await client.query(
|
// ⚠️ REJEU. La premiere version de ce bloc n'etait pas garde : a chaque
|
||||||
|
// redemarrage elle remettait les lignes anterieures a faux puis les six
|
||||||
|
// arbitrees a vrai. Le resultat restait JUSTE — l'operation est idempotente
|
||||||
|
// en sortie — mais elle ecrivait une ligne de journal trompeuse a chaque
|
||||||
|
// fois, quatre en une journee, qui serait apparue en annotation sur tous les
|
||||||
|
// tableaux. On garde donc sur la trace elle-meme : si elle existe, c'est
|
||||||
|
// fait.
|
||||||
|
const { rows: dejaFait } = await client.query(
|
||||||
|
`SELECT 1 FROM evenement WHERE resume LIKE 'Semantique de vehicule_sur%' LIMIT 1`);
|
||||||
|
const { rowCount: bascules } = dejaFait.length ? { rowCount: 0 } : await client.query(
|
||||||
`UPDATE session_charge SET vehicule_sur = false
|
`UPDATE session_charge SET vehicule_sur = false
|
||||||
WHERE vehicule_sur AND debut < '2026-09-14'::date`);
|
WHERE vehicule_sur AND debut < '2026-09-14'::date`);
|
||||||
if (bascules) {
|
if (bascules) {
|
||||||
|
|||||||
Reference in New Issue
Block a user