Créer, télécharger et restaurer une sauvegarde de votre base de données Discourse

:bookmark: Ce guide fournit des instructions étape par étape pour créer, télécharger et restaurer une sauvegarde de votre base de données Discourse.

:person_raising_hand: Niveau d’utilisateur requis : Administrateur

Discourse permet aux administrateurs de site de créer et de télécharger une copie de la base de données du site. La sauvegarde peut ensuite être téléchargée et restaurée sur n’importe quel forum Discourse.

Les sauvegardes Discourse incluent la base de données complète du site, qui contient tout ce qui se trouve sur le site : sujets, messages, utilisateurs, groupes, paramètres, thèmes, etc. Selon la manière dont le fichier de sauvegarde est créé, il peut ou non inclure les téléchargements. Les sauvegardes qui incluent les téléchargements sont enregistrées sous forme de fichiers .tar.gz, tandis que les sauvegardes sans téléchargements sont enregistrées sous forme de fichiers .sql.gz. Voir la section suivante pour plus de détails.

Bien que les données créées par les plugins existent dans la base de données, les plugins eux-mêmes sont installés dans votre fichier app.yml. Pour restaurer votre site sur un nouveau serveur, vous devrez vous assurer que votre installation inclut les plugins dont vous avez besoin.

Mode lecture seule

Vous pouvez activer le mode lecture seule sur la page Sauvegardes pour empêcher les modifications du site pour les tâches liées à l’administration. En savoir plus sur le mode lecture seule ici.

Créer une sauvegarde

Pour créer une sauvegarde de votre site Discourse, suivez ces étapes :

  1. Accédez à la section Admin / Sauvegardes de votre site.
  2. Cliquez sur le bouton Sauvegarde.

  1. Une fenêtre modale s’ouvrira avec une case à cocher pour inclure les téléchargements du site dans la sauvegarde. Cochez ou décochez cette option en fonction de vos préférences.

:warning: Si votre site est hébergé par nos soins et que vous souhaitez créer une sauvegarde incluant les téléchargements, contactez l’équipe Discourse avant de créer la sauvegarde.

  1. Cliquez sur le bouton de confirmation pour démarrer la sauvegarde.

Télécharger une sauvegarde

Lorsque la sauvegarde est terminée, Discourse vous enverra une notification.

  • Cliquez sur le lien dans la notification pour revenir à votre page Sauvegardes. Ensuite, cliquez sur le bouton Télécharger.

  • Un e-mail contenant un lien pour télécharger la sauvegarde vous sera envoyé. Cliquez sur le lien pour enregistrer la sauvegarde sur votre ordinateur.

Télécharger une sauvegarde

  • Pour télécharger une sauvegarde, accédez à la section Admin / Sauvegardes de votre site, naviguez jusqu’à l’onglet Fichiers de sauvegarde, et cliquez sur le bouton Télécharger.

  • Cela ouvrira le gestionnaire de fichiers de votre navigateur. Sélectionnez la sauvegarde à partir de votre système de fichiers et cliquez sur le bouton Ouvrir du gestionnaire de fichiers. Le nouveau fichier de sauvegarde apparaîtra dans la liste des fichiers.

Restaurer une sauvegarde

Avant de pouvoir restaurer votre fichier de sauvegarde, vous devez activer le paramètre de site allow restore. Ensuite, sur la page Sauvegardes, trouvez la sauvegarde que vous souhaitez restaurer, cliquez sur le menu d’options supplémentaires (⋮) et sélectionnez Restaurer.

:warning: La restauration d’un fichier de sauvegarde écrasera toutes les données du site. Une fois la sauvegarde restaurée, vous serez déconnecté du site et devrez vous reconnecter avec vos identifiants du site restauré.

:warning: Assurez-vous que le site sur lequel vous restaurez exécute la même version de Discourse que l’ancien site. Il est préférable de mettre à jour les deux sites vers la dernière version avant d’exécuter le processus de sauvegarde/restauration.

Le processus de restauration définit automatiquement le paramètre disable emails sur « non-staff », de sorte que les e-mails ne seront pas envoyés aux utilisateurs de votre site tant que vous n’êtes pas prêt.

:discourse: Si votre site est hébergé par Discourse, l’option Restaurer sera désactivée. Après avoir téléchargé le fichier de sauvegarde, contactez l’équipe Discourse et informez-nous du nom du fichier de sauvegarde que vous souhaitez restaurer. Nous nous en chargerons.

Sauvegarde et restauration en ligne de commande

Pour les administrateurs à l’aise avec la ligne de commande, vous pouvez créer et gérer des sauvegardes par programme :

  • Les sauvegardes sont stockées dans /var/discourse/shared/standalone/backups.
  • Démarrez une sauvegarde en utilisant :
./launcher run app discourse backup

ou

docker exec app bash -c "discourse backup"

Pour plus d’informations sur les sauvegardes en ligne de commande, consultez : Sauvegarder discourse depuis la ligne de commande.

32 « J'aime »

Existe-t-il un moyen de créer et de télécharger ce fichier de sauvegarde par programme ? Je veux dire, j’ai des scripts cron sur le serveur qui font des sauvegardes pour de nombreux autres services, puis-je exécuter quelques commandes CLI directement sur le serveur pour y obtenir la sauvegarde ? Peut-être ./launcher app backup new-backup.backup ou quelque chose comme ça ?

Les sauvegardes se trouvent dans /var/discourse/shared/standalone/backups

Vous pouvez démarrer une sauvegarde avec

./launcher run app discourse backup

Ou

docker exec app bash -c "discourse backup" 

Je pense.

2 « J'aime »

Est-ce également possible dans un environnement de développement Docker, configuré comme décrit sur Install Discourse for development using Docker ?

Lorsque j’essaie comme décrit dans la section Créer une sauvegarde ci-dessus, j’obtiens l’erreur pg_dump: error: connection to database \"discourse_development\" failed: connection to server on socket \"/var/run/postgresql/.s.PGSQL.5432\" failed: FATAL: Peer authentication failed for user \"postgres\".

Journal complet de la sauvegarde échouée
[2024-09-04 15:03:39] [STARTED]
[2024-09-04 15:03:39] 'raphael.dasgupta' a démarré la sauvegarde !
[2024-09-04 15:03:39] Marquage de la sauvegarde comme en cours...
[2024-09-04 15:03:39] Vérification de l'existence de '/src/tmp/backups/default/2024-09-04-150339'...
[2024-09-04 15:03:39] Vérification de l'existence de '/src/public/backups/default'...
[2024-09-04 15:03:39] Mise à jour des métadonnées...
[2024-09-04 15:03:39] Vidage du schéma public de la base de données...
[2024-09-04 15:03:40] pg_dump: error: connection to database \"discourse_development\" failed: connection to server on socket \"/var/run/postgresql/.s.PGSQL.5432\" failed: FATAL:  Peer authentication failed for user \"postgres\"
[2024-09-04 15:03:40] EXCEPTION: pg_dump failed
[2024-09-04 15:03:40] /src/lib/backup_restore/backuper.rb:173:in `dump_public_schema'
/src/lib/backup_restore/backuper.rb:36:in `run'
/src/script/spawn_backup_restore.rb:9:in `backup'
/src/script/spawn_backup_restore.rb:31:in `block in <main>'
/src/script/spawn_backup_restore.rb:4:in `fork'
/src/script/spawn_backup_restore.rb:4:in `<main>'
[2024-09-04 15:03:40] Nettoyage...
[2024-09-04 15:03:40] Suppression des restes de '.tar'...
[2024-09-04 15:03:40] Marquage de la sauvegarde comme terminée...
[2024-09-04 15:03:40] Notification à 'raphael.dasgupta' de la fin de la sauvegarde...
1 « J'aime »

J’ai du mal à télécharger une sauvegarde. Lorsque j’ai cliqué sur le bouton de téléchargement, j’ai reçu une invite indiquant qu’un lien de téléchargement avait été envoyé à mon adresse e-mail. Cependant, cela fait plus de deux jours maintenant et je n’ai toujours pas reçu l’e-mail.

Merci de bien vouloir m’aider.

Avez-vous essayé ./discourse-doctor

Merci pour votre réponse. Le problème principal est que j’ai configuré une autre adresse e-mail depuis le backend en tant qu’administrateur. La connexion au port 587 échoue constamment et les e-mails ne sont pas envoyés. Y a-t-il une solution de contournement ou un autre port à utiliser ?

1 « J'aime »

est-ce la réponse alternative par adresse e-mail que vous avez confirmée ?

Le port 587 est celui que j’utilise pour me connecter à smtp.eu.mailgun.org

Voici ce que j’ai dans les paramètres de mon serveur.

Je vois, vous souhaitez donc Office 365 sur votre domaine racine et Discourse transactional email / mail-receiver via MX sur un sous-domaine ?

Oui, car mon e-mail est configuré sur 365

Je pense que la cause du problème est que vous utilisez Office 365 pour les e-mails transactionnels. Vous voudrez peut-être utiliser un service de messagerie transactionnelle comme Mailgun ou Brevo, tous deux utilisés avec Discourse sans beaucoup de problèmes.

1 « J'aime »

Je peux vous aider avec les configurations décrites. Actuellement, vous ne pourrez pas envoyer ou recevoir d’e-mails de discourse en utilisant vos abonnements Office 365.

Quelle est l’échelle du forum que nous envisageons ici ? Un plan de messagerie gratuit pourrait suffire.

J’ai configuré les paramètres SMTP en utilisant Brevo et j’ai utilisé le port 587, et je reçois toujours la même erreur. Veuillez m’aider, je ne suis pas sûr de ce que je fais de mal.

Hmm… que diriez-vous de changer le port en 2525 ?

1 « J'aime »

avez-vous réussi à faire fonctionner cela ?

Lors du téléchargement du fichier de sauvegarde, le fichier de sauvegarde téléchargé ne peut pas être sélectionné, il apparaît en grisé et ne peut pas être sélectionné. Le fichier a une extension .tar.gz.

Le fichier que vous essayez de restaurer provient-il d’une version récente de Discourse ?

Avez-vous modifié le nom du fichier ? Cela ne fonctionnera pas si ce n’est pas le nom donné lors de la création de la sauvegarde.

1 « J'aime »