Colle pour développeurs !! (sauvegardes)

Colle pour développeurs !! (sauvegardes)

par Valery Fremaux,
Nombre de réponses : 0

Bonjour à tous,

voici un cas de figure sur lequel je butte. Si quelqu'un à des suggestions...

Le module coursetracking permet de déposer des "capteurs" dans le texte des ressources (voir ma conférence au prochain MoodleMoot).

Lorsqu'on doit organiser la sauvegarde du cours contenant le tracker pas de soucis. Moodle fabrique un fichier XML dans lequel sont encodés en séquence les différents modules et ressources.

Pour la restauration le problème apparait :

Toute restauration sur Moodle se conduit en deux processus :

  • rétablir les enregistrements de données dans la base
  • réencoder toutes les clefs primaires des anciennes associations relationnelles avec les Id nouvellement générés.

Le module coursetracking, comme les autres rétablira ses enregistrements, en générant des nouveaux Id d'insertion. Le problème vient de la suite des événements :

La restauration du module doit maintenant mettre à jour les Ids des relations, ce qu'il saut faire entre ses propres tables. Mais plus délicat : elle doit intervenir dans le contenu de toutes les ressources où ont été déposés des capteurs (pour réencoder ceux-ci), et pas nécessairement appelées (les ressources) avant le tracker lui-même dans la séquence du cours. De ce fait, il est possible que la sauvegarde ait à intervenir à la fois dans des contenus (champ fulltext d'une ressource) de ressource qui ont déjà été restaurées (on les trouvera par backup_ids()) mais aussi dans des ressources suivantes qui ne l'ont pas encore été.

Il existe plusieurs possibilités mais qui sont toutes assez lourdotes (faire le recâblage des capteurs par une tâche cron, essayer coûte que coûte de transformer les données de sauvegarde en cours...). Si un astucieux connait bien le module de sauvegarde et me donne une idée géniale... je pourrai terminer la livraison définitive de ce module. 

Moyenne des évaluations  -