You are currently viewing Moodle : comment restaurer une sauvegarde de cours étendue dans un nouveau cours

Moodle : comment restaurer une sauvegarde de cours étendue dans un nouveau cours

Dernièrement, j’ai cherché à installer une formation provenant d’une autre installation de Moodle, sur mon propre Moodle. Le but étant de tester hors domaine de production, de possibilités de rapportage. La sauvegarde dans le Moodle initial s’est effectuée normalement, et le fichier *.mbz (contenant les données anonymisées des participants) ne pesait que 800MB.

Malgré tous mes efforts, je ne suis pas parvenu à télécharger ce fichier de backup sur le nouveau serveur, en passant pas les possibilités offertes par Moodle: soit le téléchargement ne s’arrêtait pas, soit des erreurs apparaissaient dans la lecture du fichier.

Il est donc temps pour un petit hack…

Cette approche ne nécessite aucun plug-in et fonctionne également dans toutes les versions de Moodle. Vous avez juste besoin d’un client FTP, d’un accès à votre base de données et d’un petit bidouillage agissant sur le référentiel. Voici les étapes que j’ai suivies:

  • Entrez Moodle et créez un nouveau cours vide appelé ce que vous voulez
  • Faites une sauvegarde de ce cours vide
  • Recherchez le fichier de sauvegarde dans le référentiel de fichiers (ces étapes peuvent être utilisées pour rechercher n’importe quel fichier dans le référentiel):
  • Entrez votre base de données et ouvrez la table mdl_files.
  • Rechercher le nom dans la colonne du nom de fichier
  • Notez la valeur contenthash correspondante. Dans mon cas, 41139b7e64f41cbe93c601cdeaf7ec4160f7453a
  • Le fichier sera situé dans / moodledata / filedir / HASH1 / HASH2 /, où HASH1 correspond aux deux premiers caractères du hachage et HASH2 aux troisième et quatrième caractères.
  • Ouvrez votre client FTP et accédez à cet emplacement.
  • Dans mon cas / moodledata / filedir / 41 / 13 /. N’oubliez pas que dans votre cas, les noms des deux derniers dossiers peuvent être différents. Vous y trouverez un fichier dont le nom est le code contenthash. Ce fichier est le fichier de sauvegarde que vous venez de créer.
  • Renommez le fichier pour ajouter l’extension .bak. Par exemple,de 41139b7e64f41cbe93c601cdeaf7ec4160f7453a à 41139b7e64f41cbe93c601cdeaf7ec4160f7453a.bak
  • Téléchargez le fichier de sauvegarde du cours que vous voulez vraiment importer dans le même dossier.
  • Renommez votre fichier de sauvegarde à la valeur de hachage précédente
  • Retournez à Moodle et restaurez votre formation dans une nouvelle formation.

De cette façon, le système utilisera le fichier téléchargé au lieu de la sauvegarde de test réelle. Si tout va bien, vous aurez correctement importé votre ancien cours.

Basculez vers le client FTP, supprimez votre sauvegarde et renommez le fichier .bak pour supprimer l’extension. Cette étape n’est pas obligatoire, mais il est utile de conserver le référentiel de fichiers dans un état cohérent.

Finalement, vous pouvez supprimer le cours “Test” et sa sauvegarde ou les conserver pour les futures importations.

Notez que cette importation “à l’arraché” peut générer des erreurs. Essayez plusieurs fois en jouant sur le paramètres d’importation et rendez-vous sur Administration du site > Cours > Gestion des cours et catégories pour retrouver votre formation.