Échec de restauration - sauvegarde S3 (compatible)

Merci @Falco, je vous en suis reconnaissant ! Tout s’est passé parfaitement :smiley:

J’ai migré vers un nouveau serveur, mais il semble que rester sur le même serveur aurait aussi fonctionné.

Au cas où quelqu’un d’autre souhaiterait se référer à cela plus tard, voici les étapes détaillées (notez que mes paramètres S3 étaient simplement dans le fichier app.yml comme spécifié ici, sans aucune personnalisation dans les paramètres d’administration) :

  1. Sur le site source, si ce n’est pas un retour en arrière, activez « désactiver les e-mails » (peut-être pas nécessaire) et passez en mode lecture seule (n’oubliez pas de réactiver ces options sur la nouvelle instance une fois la migration terminée). Créez une sauvegarde ; une fois celle-ci terminée, envisagez d’arrêter l’ancienne instance également (./launcher stop app). Que ce soit un retour en arrière ou non, mettez à jour les enregistrements DNS A pour qu’ils pointent vers l’adresse IP du nouveau serveur. Vous pouvez le faire de manière plus élégante ou dans un ordre différent pour minimiser les temps d’arrêt ; dans mon cas, les temps d’arrêt n’étaient pas un problème (retour en arrière, forum non encore lancé).

  2. Installez Discourse sur le nouveau serveur et migrez tout ce qui est personnalisé dans app.yml, y compris les paramètres S3. Assurez-vous que les versions de Discourse soient identiques ou très proches.

  3. Commentez ces deux lignes (les autres paramètres S3 dans app.yml peuvent rester tels quels) :
    DISCOURSE_S3_BACKUP_BUCKET: BucketName
    DISCOURSE_BACKUP_LOCATION: s3

  4. Téléchargez manuellement la sauvegarde souhaitée depuis S3 ou un service compatible S3.

  5. Accédez à /var/discourse/shared/standalone/backups et créez un nouveau dossier nommé « default » s’il n’existe pas (il n’existera pas dans le cas d’une nouvelle installation). Ensuite, toujours dans le dossier backups, exécutez la commande suivante (cela modifie les permissions du dossier pour qu’elles correspondent à celles qu’il aurait normalement si Discourse avait créé une sauvegarde locale — je ne suis pas sûr que cela soit nécessaire) :
    chown -R 1000:www-data default

  6. Téléversez la sauvegarde dans le dossier backups/default à l’aide d’un client SFTP, sans renommer le fichier de sauvegarde.

  7. Reconstruisez l’application :
    cd /var/discourse
    ./launcher rebuild app

  8. Accédez à l’application, activez les sauvegardes et restaurez (renommez BackupFileName.tar.gz) :

./launcher enter app
discourse enable_restore
discourse restore BackupFileName.tar.gz
  1. Une fois terminé, décommentez les deux lignes relatives aux sauvegardes S3 dans app.yml (étape 2) et reconstruisez l’application.

  2. Vous pouvez supprimer le dossier local backups/default et la sauvegarde qu’il contient (/var/discourse/shared/standalone/backups).

Référence :

4 « J'aime »