[spip-dev] Une blague lors d'une mise à jour SPIP 2.1 vers 3.1

Bonjour,

Je vous informe d’un petit soucis rencontré sur 7 des 493 sites de la plate-forme mutualisée que je gère lors de sa mise à jour.
Il se trouve que ces 7 sites avaient des rubriques bizarrement ordonnées :

  • certaines avaient leur propre id_rubrique comme id_parent ;
  • d’autres bouclaient : une rubrique 1 était déclarée mère d’une rubrique 2 alors que la 2 était déclarée la mère de la 1.
    Pendant mise à jour, le soucis se produit lors de l’ajout et du calcul du champs profondeur dans la table des rubriques car une boucle est présente (on arrive à la limite du smallint profondeur) et la mise à jour n’aboutit jamais. J’ai donc modifié les id_parent dans la base de données pour résoudre le problème.

Je ne sais pas s’il est possible, voire même pertinent, de gérer ce type de cas d’espèce exotique dans les script de mise à jour… Je vous laisse juger.
Je me demande même comment cela a-t-il pu se produire (veille version de spip permettant de créer cette situation ?), si ce n’est en trifouillant la base de données ?

Bien cordialement,

Amusant, le même jour mais 2h plus tard on est tombé sur le "même" cas à
l'apéro Bxl
- une rubrique qui est son propre parent
- une rubrique qui a pour parente une rubrique qui n'existe pas/plus...

Résultat identique.

Si on en faisait un mini-plugin "préparons la màj vers SPIP3" ? Il y a
peut-être eu d'autres cas de figures de ce type ? Je ne sais pas si on
peut gérer ça de manière automatique dans les scripts par contre. Bien
sûr, ça éviterait un gros bug... Mais d'un autre côté, toucher aux
données de manière silencieuse... ?