La restauration de sauvegarde échoue en raison de l'extension de fichier .tar versus .tar.gz

Bonjour, pouvez-vous s’il vous plaît m’indiquer quel pourrait être le problème lors de la restauration de la sauvegarde ?
La sauvegarde a été créée le 2019-09-03.

Toute astuce serait grandement appréciée :heart:

> root@discourse-beta-ubuntu-s-1vcpu-1gb-sgp1-01-app:/var/www/discourse# discourse restore entc-bme-forum-2019-09-03-194746-v20190603134013.tar.gz
> Démarrage de la restauration : entc-bme-forum-2019-09-03-194746-v20190603134013.tar.gz
> [DÉMARRÉ]
> Le système a lancé la restauration !
> Marquage de la restauration comme en cours...
> Vérification de l'existence de /var/www/discourse/tmp/restores/default/2020-03-28-174121...
> Copie de l'archive dans le répertoire tmp...
> Décompression de l'archive, cela peut prendre un certain temps...
> EXCEPTION : Le fichier existe - /shared/tmp/restores/default/2020-03-28-174121/PaxHeader
> /usr/local/lib/ruby/2.6.0/fileutils.rb:525:in `block in mv'
> /usr/local/lib/ruby/2.6.0/fileutils.rb:1557:in `block in fu_each_src_dest'
> /usr/local/lib/ruby/2.6.0/fileutils.rb:1566:in `block in fu_each_src_dest0'
> /usr/local/lib/ruby/2.6.0/fileutils.rb:1564:in `each'
> /usr/local/lib/ruby/2.6.0/fileutils.rb:1564:in `fu_each_src_dest0'
> /usr/local/lib/ruby/2.6.0/fileutils.rb:1555:in `fu_each_src_dest'
> /usr/local/lib/ruby/2.6.0/fileutils.rb:520:in `mv'
> /var/www/discourse/lib/compression/strategy.rb:41:in `strip_directory'
> /var/www/discourse/lib/backup_restore/backup_file_handler.rb:70:in `decompress_archive'
> /var/www/discourse/lib/backup_restore/backup_file_handler.rb:22:in `decompress'
> /var/www/discourse/lib/backup_restore/restorer.rb:42:in `run'
> script/discourse:143:in `restore'
> /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor/command.rb:27:in `run'
> /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor/invocation.rb:127:in `invoke_command'
> /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor.rb:392:in `dispatch'
> /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor/base.rb:485:in `start'
> script/discourse:284:in `<top (required)>'
> /usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `load'
> /usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `kernel_load'
> /usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:28:in `run'
> /usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:476:in `exec'
> /usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
> /usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
> /usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor.rb:399:in `dispatch'
> /usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:30:in `dispatch'
> /usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/base.rb:476:in `start'
> /usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:24:in `start'
> /usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/exe/bundle:46:in `block in <top (required)>'
> /usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/friendly_errors.rb:123:in `with_friendly_errors'
> /usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/exe/bundle:34:in `<top (required)>'
> /usr/local/bin/bundle:23:in `load'
> /usr/local/bin/bundle:23:in `<main>'
> Tentative de retour en arrière...
> Aucun retour en arrière nécessaire
> Nettoyage des fichiers temporaires...
> Suppression du répertoire tmp '/var/www/discourse/tmp/restores/default/2020-03-28-174121'...
> Reprendre sidekiq...
> Marquage de la restauration comme terminée...
> Notification au système de la fin de la restauration...
> Terminé !
> [ÉCHOUÉ]
> Restauration terminée.

Au départ, il y avait un problème car l’archive était un fichier .tar, mais je l’ai recompressée en .tar.gz

Pourquoi avez-vous dû apporter des modifications au fichier de sauvegarde créé par Discourse ? Avez-vous créé manuellement le fichier tar (sur MacOS) ? J’ai vu des rapports indiquant qu’il utilise un format tar différent, ce qui cause des problèmes lors de la décompression.

Vous devrez peut-être créer un nouveau fichier tar avec l’option --format ustar ou, encore mieux, créer une nouvelle sauvegarde directement dans un conteneur Docker Discourse.

J’ai téléchargé la sauvegarde de mon ancien Discourse hébergé il y a plusieurs mois… Quand je l’ai retrouvée, elle avait l’extension .tar (je ne sais pas pourquoi — j’avais vu que mes e-mails avaient l’extension .tar.gz).

Je vais essayer votre suggestion !
Merci beaucoup @gerhard !

Je rencontre le même problème et j’ai essayé cela. Le fichier se télécharge correctement, mais la restauration ne trouve pas le dump de la base de données :

[2025-01-23 18:39:45] EXCEPTION: No such file or directory @ rb_check_realpath_internal - /var/www/discourse/tmp/restores/default/2025-01-23-183945/dump.sql.gz

Des suggestions ? Merci.

Salut Martim,

Je vois ton nouveau sujet Locked out of my forum after restore, est-ce que cela signifie que tu as réussi à surmonter ce problème spécifique ?

Ça le fait ! Désolé, je pensais avoir supprimé mon commentaire car j’ai réussi à le restaurer peu après.