Comment récupérer un cours spécifique d’un backup de Chamilo ?

Restauration partielle limitée à un cours spécifique

L’hébergement d’une plateforme Chamilo implique, et c’est dans les bonnes pratiques recommandées, de réaliser des backups afin de pouvoir restaurer son système en cas de problème. Mais parfois, on ne souhaite pas tout restaurer pour la simple raison que seulement une partie a été supprimée tandis que le reste à continué à évoluer. L’exemple typique est la suppression d’un cours par erreur et la réception, au bout de 2 jours, d’une demande de récupération au service technique. Pendant ces 2 jours de latence, les utilisateurs ont continué à utiliser la plateforme et à créer du contenu et il est devenu impossible de restaurer la plateforme comme elle l’était 2 jours auparavant ! Nous aurons dès lors besoin d’une restauration partielle limitée à un cours spécifique. Voici comment faire !

Ci-dessous vous trouverez la procédure pour restaurer le cours dont le code est “coursARestaurer”.

À partir du backup on restaure une base de données (ci-dessous appelée BACKUDBNAME) et les archives de fichiers.

Sur ce backup de base de données, on commence par rechercher l’id de ce cours dans le backup :
select id from course where code = “coursARestaurer”;

On a ainsi l’identifiant du cours (prenons par exemple 10 pour la suite de notre exemple). Il faut maintenant récupérer tous les enregistrements de la base de données qui correspondent à ce cours :

mysqldump -u USER -pPASSWORD BACKUPDBNAME access_url_rel_course c_announcement c_announcement_attachment c_attendance c_attendance_calendar c_attendance_calendar_rel_group c_attendance_result c_attendance_sheet c_attendance_sheet_log c_blog c_blog_attachment c_blog_comment c_blog_post c_blog_rating c_blog_rel_user c_blog_task c_blog_task_rel_user c_calendar_event c_calendar_event_attachment c_calendar_event_repeat c_calendar_event_repeat_not c_chat_connected c_course_description c_course_setting c_document c_dropbox_category c_dropbox_feedback c_dropbox_file c_dropbox_person c_dropbox_post c_forum_attachment c_forum_category c_forum_forum c_forum_mailcue c_forum_notification c_forum_post c_forum_thread c_forum_thread_qualify c_forum_thread_qualify_log c_glossary c_group_category c_group_info c_group_rel_tutor c_group_rel_user c_notebook c_online_connected c_online_link c_permission_group c_permission_task c_permission_user c_resource c_role c_role_group c_role_permissions c_role_user c_student_publication c_student_publication_assignment c_student_publication_comment c_student_publication_rel_document c_student_publication_rel_user c_survey c_survey_answer c_survey_group c_survey_invitation c_survey_question c_survey_question_option c_thematic c_thematic_advance c_thematic_plan c_tool c_tool_intro c_userinfo_content c_userinfo_def c_wiki c_wiki_conf c_wiki_discuss c_wiki_mailcue c_item_property c_link c_link_category c_lp c_lp_category c_lp_item c_lp_item_view c_lp_iv_interaction c_lp_iv_objective c_lp_view c_quiz c_quiz_answer c_quiz_question c_quiz_question_category c_quiz_question_option c_quiz_question_rel_category c_quiz_rel_category c_quiz_rel_question plugin_bbb_meeting session_rel_course course_rel_user course_rel_user_catalogue session_rel_course_rel_user track_e_access track_e_attempt track_e_course_access track_e_downloads track_e_exercises track_e_hotpotatoes track_e_hotspot track_e_lastaccess track_e_links track_e_online track_e_uploads user_rel_course_vote --where='c_id=10' --skip-add-drop-table --no-create-info > 
Bakcupc_id10dump.sql

mysqldump -u USER -pPASSWORD BACKUPDBNAME course --where='id=10' --skip-add-drop-table --no-create-info > coursetableid10dump.sql

mysqldump -u USER -pPASSWORD BACKUPDBNAME course_rel_class gradebook_category --where='course_code = "coursARestaurer"' --skip-add-drop-table --no-create-info > coursecodedump.sql

mysqldump -u USER -pPASSWORD BACKUPDBNAME usergroup_rel_course track_e_item_property --where='course_id=10' --skip-add-drop-table --no-create-info > course_id10dump.sql

mysqldump -u USER -pPASSWORD BACKUPDBNAME extra_field_values --where='item_id=10' --skip-add-drop-table --no-create-info > extrafieldvalues.item_id10dump.sql

On a ainsi l’ensemble des données concernant le cours spécifique. Il suffit alors d’appliquer ces dumps sur la base de données en production.

Il faut également restaurer les fichiers correspondants à ce cours, c’est à dire le contenu du dossier app/courses/coursARestaurer/

On retrouve maintenant le cours qui avait été supprimé tel qu’il était dans le backup avant la suppression incluant toutes ses connexions aux autres éléments de Chamilo.

Beeznest est fournisseur officiel de services pour Chamilo et propose une assistance technique pour la mise en œuvre de votre projet e-learning. Découvrez également nos formules d’hébergement adaptées, découvrez-les sur https://beeznest.com/fr ou envoyez-nous votre demande à info@beeznest.com

Partagez sur vos réseaux sociauxShare on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Share on Tumblr
Tumblr
Email this to someone
email

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *