[Résolu] La Fabrique : "échec dans l'installation du plugin"

Je viens de mettre à contribution l’excellent plugin « la fabrique » pour créer un nouvel objet éditorial. Petit plugin tout simple : un objet, trois champs, pas d’options particulières,
Lorsque j’active le plugin nouvellement créé, SVP m’informe que l’activation s’est bien déroulée mais que l’installation a échoué. Un petit tour par phpmyadmin me confirme bien que quelque chose cloche car la table indiquée dans le formulaire de la Fabrique n’est pas créée…
Je suis un peu perdu : quelle peut être la raison de cet échec et où chercher ?

L’autre manière de poser la question c’est : qu’est-ce qui caractérise qu’une « installation » se passe bien ou qu’une « installation » échoue ?

Merci d’avance de vos conseils…

Il faut que le fichier d’administrations soit généré pour créer les tables à l’installation, c’est peut être pas le cas par défaut dans la configuration de la Fabrique ; je ne me rappelle plus, mais c’est certainement écrit dans la doc :wink:

Oui, j’avais bien fait attention à cocher « oui » à l’item : « Installation > Fichier d’administration > créer le fichier d’installation / désinstallation »…
Du reste, il y a un fichier (prefixe)_administrations.php de créé à la racine du plugin qui contient les fonctions de création/mise à jour et de désinstallation

maj : j’observe un truc bizarre qui peut peut-être donner un indice sur ce qui coince. Je suis reparti de zéro, c’est à dire :

  • désactivé le plugin
  • vérifié que la table que doit créer le plugin n’existe pas
  • activé le plugin (activation OK - installation échec)
  • consulté phpmyadmin : la table n’existe pas
  • demandé maintenance > réparer la base
  • la table attendue est présente !

Est-ce que cette « vraie fausse création de table » éclaire quelqu’un sur ce qui coince ?

Est ce que dans le paquet.xml il y a bien les appels aux pipelines
declarer_table_* ?

Et un fichier base/prefixe_du_plugin.php qui contient les déclarations
des tables ?

oui…

Il y a peut être des logs intéressants, tu as regardé… notamment peut être que la requête SQL de création de la table échoue au moment de l’installation ?

En tout cas si tu veux installer correctement pour tester ton plugin, il faut le « désinstaller » (pas seulement désactiver) si tu as cette option (ça enlève la meta d’installation de ce plugin notamment)

Pas d’options de désinstallation (logique d’une certaine manière puisque l’installation échoue). DOnc, je désactive, puis je supprime la table via phpmyadmin.
Je viens de refaire le test, l’installation échoue bien sûr. La table n’existe pas mais apparait si je emande une réparation de la base via le menu maintenance technique.
D’ailleurs, c’est étrange, la page qui fait le compte rendu de la tentative de réparation « bégaye » : je veux dire par là qu’elle liste une première fois l’ensemble de toutes les tables (dont la fameuse table que doit créer le plugin mais qui n’apparaît pas dans phpmyadmin) puis, à la suite, refait la même liste…

Où est-ce que je peux avoir les logs de mysql (enfin, au niveau du serveur parce que mysql.log de SPIP ne m’indique rien qui semble en rapport avec le souci rencontré)?

Trouvé ! Une histoire de majuscules, grrrrr… Le nom du plugin (ou celui du préfixe, j’avoue que je ne sais plus lequel des deux tellement j’ai fait d’essais !) contenait une majuscule au début. Du coup, le nom du répertoire créé par la fabrique pour écrire le plugin contenait une majuscule en première lettre ainsi que les différents fichiers créés par le plugin.
En mettant tout en minuscule, c’est OK.

Peut-être faudrait-il préciser dans la doc ?