Cours impossible à supprimer : "Identifiant de dépôt non valide"

Cours impossible à supprimer : "Identifiant de dépôt non valide"

par Gilles Le Page,
Nombre de réponses : 3
Avatar Moodleurs particulièrement utiles

Bonjour,

J'ai actuellement un problème sur une plateforme Moodle.

Informations techniques


    Version Moodle précise : Moodle 3.3.2 (Build: 20170911)
    Version PHP : 7
    Version MySQL : ??? j'ai noté "mysql (10.0.32-MariaDB)" dans "environnement"
    Navigateur internet utilisé : Chrome, Firefox (dernières versions)

Description précise du problème


Dans "Administration du site > Gestion des cours et des catégories", quand je veux supprimer un cours dont je n'ai plus besoin, j'obtiens le message "Identifiant de dépôt non valide".
Il est donc impossible de le supprimer...

Précisions importantes

Je peux modifier les paramètres du cours (format, nom, ...), je peux y ajouter des activités, modifier les sections, et je peux afficher le cours sans difficultés : bizarre !

Tout le reste fonctionne très bien sur cette plateforme.

J'ai déjà lu la documentation et les posts du forum concernant ce message. J'ai trouvé des discussion mais elles ne répondent pas exactement à ma problématique.

J'ai suivi le conseil trouvé dans un message du forum de Jérôme DEMIAUX le vendredi 28 février 2014, 08:58

  • activation du mode débogage avec le plus haut niveau (développement -> débogage -> développeurs)

En PJ, vous trouverez le texte obtenu par le mode débogage
Merci d'avance de l'aide que vous pourrez m'apporter.

Gilles Le Page

Moyenne des évaluations  -
En réponse à Gilles Le Page

Re: Cours impossible à supprimer : "Identifiant de dépôt non valide"

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles

Bonjour,

Ce qui est bizarre, c'est que le résultat du debug n'a pas vraiment de lien avec l'erreur. Il est surtout question de mail (smtphost, smtpauth, etc ... )
alors que le message d'origine fiat penser à problème de fichier et de dépôts

Est-ce un ancien cours ? Y-a-t-il des fichiers déposés dans ce cours et si oui, peuvent-ils être supprimés ?

Et en commençant par réinitialisé le cours, histoire de supprimer éventuellement les fichiers déposés par les étudiants s'il y en a ...

L'erreur me fait penser qu'il y aurait un dépôt (repository) qui n'existe plus sur la plateforme

Si tu as accès à la base de données, tu peux déjà vérifier cela par 2 requêtes :

  1. sur la table mdl_files_reference :
    SELECT distinct repositoryid  FROM `mdl_files_reference` ;
    permet de lister les dépôts utilisés
  2. Sur la table mdl_repository_instances
    SELECT distinct id FROM `mdl_repository_instances` ;
    Permet de lister les dépôts existants sur la plateforme

S'il y a un id de dépôt dans la 1ère requête, que tu ne retrouves pas dans la 2ème ... problème

A voir si c'est le cas ...

Moyenne des évaluations Utile (2)
En réponse à Bruno Malaval

Re: Cours impossible à supprimer : "Identifiant de dépôt non valide"

par Gilles Le Page,
Avatar Moodleurs particulièrement utiles

Merci Bruno,

j'ai essayé de suivre tes conseils cet après-midi, mais je pense que je n'ai pas tout compris : j'ai des résultats aux deux requêtes qui ne se ressemblent pas ...

Je n'avais pas trop de temps aujourd'hui, je réessaierai demain sourire

Gilles

En réponse à Gilles Le Page

Re: Cours impossible à supprimer : "Identifiant de dépôt non valide"

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles
C'est juste une piste, les 2 requêtes indiquent ceci :

  1. table mdl_files_reference
    De ce que j'ai compris, c'est une table de "référence" de certains fichiers, principalement les alias.
    Mais également, les liens que l'on peut trouver dans les étiquettes/page html ...
    Exemple : lorsque l'on fait glisser une image dans une étiquette au lieu d'insérer le codage de l'image elle-même.
    Le fichier est alors téléchargé sur le serveur, et une référence est mise dans cette table

    mdl_files_reference.id = mdl_files.referencefileid

    Et ces fichiers sont donc dans un dépôt ( mdl_files_reference.repositoryid

    La requête sert donc à retrouver tous les id des dépôts utilisés dans cette table

  2. table mdl_repository_instances
    Cette table liste toutes les instances de dépôts.

    La requête donne tous les id des instances de dépôts.
Au final, ces 2 requêtes servent à vérifier qu'il n'y a pas dans la table mdl_files_reference , de références à des dépôts non-existants.
Donc des ids de dépôts dans mdl_files_reference qui n'existent pas dans mdl_repository_instances

Si c'est le cas, le problème peut être là.
Une solution serait alors peut-être de remplacer dans mdl_files_reference le repositoryid invalide par un id valide et retenter la suppression.

Par contre, tout ceci après une bonne sauvegarde, histoire de ne pas passer une voire plusieurs mauvaises journées  .... sourire

Pour info sur ces tables, j'avais trouvé ceci cet été : https://moodleschema.zoola.io/tables/files_reference.html
J'ai migré ma plateforme d'un serveur à un autre, mais repartant de 0. Recréation des utilisateurs / des cours / etc ... bref gros nettoyage
Un peu trop d'ailleurs, environ 450 alias de fichiers ont sautés, impossible lors d'une sauvegarde/restauration de cours d'un serveur à un autre de recréer ces alias automatiquement ... tout à la main ... œil au beurre noir
Moyenne des évaluations Utile (1)