Ceci est une version très condensée de mes dernières 24 heures, bien que cela n’ait pas encore fonctionné, j’espère donc que quelqu’un pourra poster où cela a mal tourné ci-dessous.
Ma mise à jour Discourse a échoué en raison d’une clé dupliquée, l’une de mes balises est doublée. Pour résoudre le problème de mise à jour, j’ai dû effectuer une nouvelle installation de Discourse, puis charger ma dernière sauvegarde, mais le rechargement échoue car il se bloque sur la clé dupliquée. J’ai donc dû aller à l’intérieur de la sauvegarde pour modifier la balise fautive en quelque chose de différent.
Pour une raison quelconque, la sauvegarde recompressée avec le problème de balise dupliquée corrigé est nettement plus petite que la sauvegarde d’origine, et échoue lorsque j’essaie de la restaurer, donc quelque chose s’est mal passé avec le processus de recompression.
1) Localisation des sauvegardes : Pour localiser vos sauvegardes Discourse, vous pouvez utiliser la commande suivante :
sudo find / -name "*.tar.gz"
Cela recherchera sur votre système tous les fichiers de sauvegarde avec l’extension “.tar.gz”. Par défaut, il devrait se trouver à l’intérieur de votre conteneur à : shared/backups/default
2) Création d’une copie : Une fois que vous avez trouvé la sauvegarde avec laquelle vous souhaitez travailler, créez une copie de celle-ci pour vous assurer d’avoir une sauvegarde du fichier d’origine. Utilisez la commande “cp” :
bash
sudo cp /chemin/vers/sauvegarde_originale.tar.gz /chemin/vers/copie_sauvegarde.tar.gz
3) Extraction de la copie : Extrayez le contenu du fichier de sauvegarde copié à l’aide de la commande “tar” :
bash
tar -xzvf /chemin/vers/copie_sauvegarde.tar.gz
Cela extraira les fichiers de sauvegarde dans un répertoire temporaire.
4) Modification des balises dans la base de données : Naviguez vers les fichiers de sauvegarde extraits et ouvrez le fichier de base de données pertinent à l’aide d’un éditeur de texte. J’ai rencontré un problème avec des balises “socialmedia” dupliquées, ce qui a empêché une restauration réussie. Dans une grande base de données, il y a de nombreuses instances de balises, et probablement pour la balise spécifique que vous recherchez, j’ai donc recherché ‘immutable socialmedia’ en utilisant Ctrl W dans Nano, ce qui m’a mené directement là-bas.
sudo nano /chemin/vers/base_de_donnees_extraite.sql
J’ai modifié une instance de la balise “socialmedia” en “socialmedia2”, puis j’ai effectué une recherche rapide pour vérifier qu’elle n’apparaît plus qu’une seule fois. Je peux corriger ces balises depuis la section administration une fois que la restauration réussit.
5) Recompression : Après avoir modifié les fichiers de sauvegarde, créez un nouveau fichier de sauvegarde avec le contenu corrigé. Utilisez la commande suivante pour compresser les fichiers modifiés :
tar -czvf /chemin/vers/nouvelle_sauvegarde_modifiee.tar.gz /chemin/vers/repertoire_fichiers_modifies
6) Déplacement vers le bon fichier : Déplacez le nouveau fichier de sauvegarde modifié vers le répertoire approprié où les sauvegardes sont stockées. L’emplacement par défaut est généralement “/shared/backups/default” :
sudo mv /chemin/vers/nouvelle_sauvegarde_modifiee.tar.gz /shared/backups/default/
7) Arrêt et redémarrage des services : Avant de restaurer la sauvegarde modifiée, assurez-vous d’arrêter les services pertinents pour éviter tout conflit potentiel pendant le processus de restauration. Utilisez la commande “./launcher stop app” pour arrêter l’application Discourse :
./launcher stop app
8) Restauration de la sauvegarde : Pour restaurer à partir de la sauvegarde modifiée, utilisez la commande “discourse restore” avec le chemin d’accès au nouveau fichier de sauvegarde :
discourse restore /shared/backups/default/nouvelle_sauvegarde_modifiee.tar.gz
Ou vous pouvez le faire via /admin sur votre site car il devrait maintenant apparaître dans la section des sauvegardes.
9) Vérification de la restauration : Une fois le processus de restauration terminé, j’ai vérifié que les modifications avaient été effectuées avec succès en examinant l’application et la base de données Discourse pour m’assurer que les balises “socialmedia” dupliquées avaient été supprimées.
10) Démarrage des services : J’ai redémarré les services qui avaient été arrêtés précédemment pour remettre l’application Discourse en ligne. J’ai utilisé la commande “./launcher start app” pour démarrer l’application Discourse :
./launcher start app
11) Suppression des fichiers temporaires et des sauvegardes supplémentaires : Après avoir restauré la sauvegarde avec succès, j’ai supprimé tous les fichiers temporaires et les sauvegardes supplémentaires qui avaient été créés pendant le processus pour libérer de l’espace disque. Utilisez la commande “rm” pour supprimer les fichiers :
sudo rm -r /chemin/vers/repertoire_temporaire
sudo rm /chemin/vers/copie_sauvegarde.tar.gz
