استعادة النسخة الاحتياطية تفشل بسبب امتداد الملف .tar مقابل .tar.gz

مرحبًا، هل يمكنك إخباري بما قد يكون المشكلة أثناء استعادة النسخة الاحتياطية؟
تم إنشاء النسخة الاحتياطية في 2019-09-03

أي نصائح ستكون محل تقدير كبير :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
> Starting restore: entc-bme-forum-2019-09-03-194746-v20190603134013.tar.gz
> [STARTED]
> 'system' has started the restore!
> Marking restore as running...
> Making sure /var/www/discourse/tmp/restores/default/2020-03-28-174121 exists...
> Copying archive to tmp directory...
> Unzipping archive, this may take a while...
> EXCEPTION: File exists - /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>'
> Trying to rollback...
> There was no need to rollback
> Cleaning stuff up...
> Removing tmp '/var/www/discourse/tmp/restores/default/2020-03-28-174121' directory...
> Unpausing sidekiq...
> Marking restore as finished...
> Notifying 'system' of the end of the restore...
> Finished!
> [FAILED]
> Restore done.

في البداية كانت هناك مشكلة لأن الأرشيف كان ملفًا بصيغة .tar، لكنني أعيدت ضغطه إلى .tar.gz

لماذا كان عليك إجراء تغييرات على ملف النسخ الاحتياطي الذي أنشأه Discourse؟ هل قمت بإنشاء ملف tar يدويًا (على نظام macOS)؟ لقد قرأت تقارير تشير إلى أنه يستخدم تنسيق tar مختلف مما يسبب مشاكل أثناء فك الضغط.

قد تحتاج إلى إنشاء ملف tar جديد باستخدام خيار --format ustar، أو الأفضل من ذلك، إنشاء نسخة احتياطية جديدة مباشرة داخل حاوية Docker الخاصة بـ Discourse.

لقد قمت بتنزيل النسخة الاحتياطية من منصة Discourse المستضافة سابقًا قبل أشهر. عندما عثرت عليها، كانت بامتداد .tar (لا أدري السبب - فقد رأيت أن بريدي الإلكتروني يحتوي على ملفات .tar.gz).

سأجرب اقتراحك!
شكرًا جزيلاً لك @gerhard!

أواجه نفس المشكلة وجربت هذا. يتم تحميل الملف بشكل جيد، ولكن الاستعادة لا يمكنها العثور على تفريغ قاعدة البيانات:

[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

أي اقتراحات؟ شكراً

مرحباً مارتيم،

أرى موضوعك الجديد https://meta.discourse.org/t/locked-out-of-my-forum-after-restore/348684، هل هذا يعني أنك تمكنت من تجاوز هذه المشكلة تحديداً بنجاح؟

نعم! آسف، اعتقدت أنني حذفت تعليقي حيث تمكنت من استعادته بعد فترة وجيزة.