Impossible de supprimer un cours avec 9192 sections !

Re: Impossible de supprimer un cours avec 9192 sections !

par guillaume crepin,
Nombre de réponses : 2
Bonjour Jean-Gabriel,
Je n'avais jamais mis le nez dans cet éditeur XMLDB, c'est du jouflu !
J'ai actuellement 10 violations et j'avoue ne pas comprendre ce qu'il faut que je fasse avec tout cela !
Faut-il simplement que je lance la requete sql proposée en mode console ?


Merci pour cette astuce.
J'ai vu que nous n'étions pas trop loin l'un de l'autre, je suis à Tourcoing au lycée Colbert !
En réponse à guillaume crepin

Re: Impossible de supprimer un cours avec 9192 sections !

par Jean-Gabriel DEPINOY,
Avatar Moodleurs particulièrement utiles

Bonjour Guillaume, effectivement, nous sommes à quelques kilomètres l'un de l'autre.

Malheureusement, les requêtes ne peuvent pas être lancées directement.

Tu vas dans ta base de données avec PhpMyAdmin.

Pour la première requête, c'est très simple. Tu as "105 violations sur un total de 105 rangées" autrement dit, tu peux supprimer les 105 enregistrements de cette table. Mais cette table ne s'appelle pas réellement tool_dataprivacy_request. Généralement, elle s'appelle mdl_tool_dataprivacy_request (le suffixe (généralement mdl_) est indiqué dans ton fichier config de Moodle.

Vérifie quand même que tu n'as que 105 lignes dans ta table avant de les supprimer mais normalement c'est le cas.

Pour les 3 autres requêtes, c'est un peu plus long. Tu dois reprendre la syntaxe proposée mais utiliser delete au lieu de select.

La syntaxe devient la suivante:

DELETE * FROM mdl_grade_grades LEFT JOIN mdl_user ON mdl_grade_grades.usermodified=mdl_user.id WHERE mdl_grade_grades.usermodified IS NOT NULL AND mdl_user.id IS NULL;

DELETE * FROM mdl_grade_items_history LEFT JOIN mdl_course ON mdl_grade_items_history.courseid=mdl_course.id WHERE mdl_grade_items_history.courseid IS NOT NULL AND mdl_course.id IS NULL;

DELETE * FROM mdl_grade_items_history LEFT JOIN mdl_grade_categories ON mdl_grade_items_history.categoryid=mdl_grade_categories.id WHERE mdl_grade_items_history.categoryid IS NOT NULL AND mdl_grade_categories.id IS NULL

Si le préfixe de tes tables n'est mas mdl_, tu n'as qu'à adapter les requêtes.

Apparemment, ces requêtes ne font pas appel à tes cours au format Tiles. Mais c'est toujours bien de faire un peu de nettoyage...

En réponse à Jean-Gabriel DEPINOY

Re: Impossible de supprimer un cours avec 9192 sections !

par guillaume crepin,
Merci jean-gabriel

Sacré boulot en perspective... je regarde ça de plus près dès que j'ai un peu de temps si ce n'est pas bloquant pour la plateforme.
Pourquoi Moodle ne met pas en place un système cron pour nettoyer ces tables ?

Bonnes vacances