---
title: "Jah : faire entrer treize ans de MSN dans le nouveau salon"
subtitle: "On a sorti les données de l'ancien msn.vfg.lol, tranché une à une ce qu'elles devaient devenir, et appris à Jah à rendre à chaque habitant les trophées qu'il avait déjà mérités."
date: 2026-10-06
time: "18:41"
author: VFG
publishedBy: code
status: pub
tags: ["vfjah", "jah", "migration", "donnees", "agents"]
---

## TL;DR

`msn.vfg.lol` — l'ancien messager — n'était **pas en panne** : il tourne toujours. Le travail n'était
donc pas de le rallumer, mais de **préparer le déménagement** : sortir la base (70 comptes,
14 105 messages, 14 salons), décider **au cas par cas** ce que devient chaque compte, puis apprendre
à Jah à **rendre à chacun ce qu'il avait déjà gagné** (badges, emotes, clins d'œil, talent Farceur).
Rien n'a touché la production : tout s'est mesuré, décidé et prouvé **en local**.

## Ce que les habitants gardent

- **Leurs conversations.** Treize mille huit cent cinquante-neuf messages passent de l'ancien MSN
  au nouveau Jah, avec les salons (`#coupedumonde`, `#bettermsn`…) et les messages privés.
- **Leurs liens.** Les contacts et les paliers d'amitié sont conservés : on n'arrive pas devant un
  village vide, on retrouve ses gens — et les mêmes niveaux de relation.
- **Leurs trophées.** C'est la vraie nouveauté de la session : un habitant qui *avait mérité* un
  badge Wizzeur, une emote à débloquer, un clin d'œil ou le talent Farceur dans l'ancien salon
  **les retrouve dans le nouveau**, aux mêmes seuils. Un compte qui n'a rien fait n'hérite de rien.

## Le vrai travail : décider, pas copier

Une base ancienne, c'est du désordre : des adresses qui ne sont plus valides (`heu`, `test`,
`MyroBolant`), des doublons, des gens qui se sont trompés de champ. L'outil d'import avait une
règle claire — **il refuse d'inventer** une identité — donc il écartait tout ce qui ne pouvait pas
devenir une adresse propre.

Plutôt que de tout jeter, on a **tout gardé brut**, puis on a décidé, **compte par compte**, avec FG
devant un tableau filtrable. Et là, une découverte : **FG s'appelle aussi Didou.** Ce petit détail
démêlait un imbroglio où quatre « Didou » différents n'étaient en réalité que **deux personnes**
(FG, et le vrai Didou) plus le bot. Une fois la clé trouvée, la carte de fusion tombait :
`fg@jah` récupère tous les comptes de FG, `lefo@jah` (DidouLeFo) récupère ceux du vrai Didou, et
le bot reste le bot.

Résultat : **52 comptes, 61 fusions, zéro collision, zéro message perdu.**

## La preuve : vu de ses yeux, en local

Rien n'est monté en production. On a monté un **clone jetable** des données, importé pour de vrai,
et **joué** : connexion en `fg@jah`, on ouvre la conversation avec DidouLeFo, et là — l'historique
réel remonte, les Wizz, les souvenirs, le palier d'amitié déjà là. On ne croit pas un import parce
qu'un compteur est vert : on le croit parce qu'on a **lu le passé** dans le nouveau salon.

## La leçon réutilisable

Un import de données ne se réussit pas en « tout ou rien ». Il se réussit quand on **mesure d'abord,
décide ensuite, et prouve enfin** — en local, sur du réel. Et quand une donnée ne peut pas
s'importée telle quelle, on ne la supprime pas : on la **garde brute** et on écrit, plus tard, le
petit geste qui saura la rattraper.

## Et après

Le cutover réel (importer dans la base de production, distribuer les cartes d'invitation, puis
éteindre l'ancien MSN après une semaine sans retour arrière) reste une **décision de FG** : c'est
un acte serveur. Tout est prêt, mesuré, et rangé.