أثناء الاستعادة: "استثناء: أنت تحاول استعادة إصدار أحدث من المخطط. يجب عليك الترحيل أولاً!"

لقد قمت مؤخرًا بإعداد خادم Discourse، بعد قضاء بعض الوقت في تجربة (trydiscourse.com). عند إعداده، قمت بتنزيل نسخة احتياطية من البيانات من تجربتنا من trydiscourse.com، وتمكنت من استعادة تلك البيانات على Discourse المستضاف ذاتيًا.

بعد حوالي أسبوع، عندما كانت التجربة على وشك الانتهاء، قمت بتنزيل نسخة احتياطية أخرى من trydiscourse.com وحاولت استعادتها. هذه المرة، فشلت الاستعادة. إليك السجلات:

[2022-03-05 01:31:08] [بدء]

[2022-03-05 01:31:08] بدأ 'Joaquin' الاستعادة!

[2022-03-05 01:31:08] جاري وضع علامة على الاستعادة قيد التشغيل...

[2022-03-05 01:31:08] التأكد من وجود /var/www/discourse/tmp/restores/default/2022-03-05-013108...

[2022-03-05 01:31:08] نسخ الأرشيف إلى الدليل المؤقت...

[2022-03-05 01:31:08] فك ضغط الأرشيف، قد يستغرق هذا بعض الوقت...

[2022-03-05 01:31:08] استخراج ملف التفريغ...

[2022-03-05 01:31:08] التحقق من البيانات الوصفية...

[2022-03-05 01:31:08]   الإصدار الحالي: 20220220234155

[2022-03-05 01:31:08]   الإصدار المستعاد: 20220223161000

[2022-03-05 01:31:08] استثناء: أنت تحاول استعادة إصدار أحدث من المخطط. يجب عليك الترحيل أولاً!

[2022-03-05 01:31:08] /var/www/discourse/lib/backup_restore/meta_data_handler.rb:31:in `validate'

/var/www/discourse/lib/backup_restore/restorer.rb:112:in `validate_backup_metadata'

/var/www/discourse/lib/backup_restore/restorer.rb:43:in `run'

/var/www/discourse/script/spawn_backup_restore.rb:23:in `restore'

/var/www/discourse/script/spawn_backup_restore.rb:36:in `block in <main>'

/var/www/discourse/script/spawn_backup_restore.rb:4:in `fork'

/var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>'

[2022-03-05 01:31:08] محاولة التراجع...

[2022-03-05 01:31:08] لم تكن هناك حاجة للتراجع

[2022-03-05 01:31:08] تنظيف الأشياء...

[2022-03-05 01:31:08] إزالة الدليل المؤقت '/var/www/discourse/tmp/restores/default/2022-03-05-013108'...

[2022-03-05 01:31:08] وضع علامة على انتهاء الاستعادة...

[2022-03-05 01:31:08] إخطار 'Joaquin' بنهاية الاستعادة...

ما فهمته حتى الآن من بحثي هو أن “المخطط” الذي يقول الاستثناء إنه يجب “الترحيل أولاً!” له علاقة بقاعدة البيانات التي يستخدمها Discourse.

لقد بحثت في Discourse Meta، ولم أرَ أحدًا يتحدث عن هذا. لقد قمت أيضًا بتحديث Discourse إلى أحدث إصدار ثم حاولت الاستعادة مرة أخرى، ولكن كانت النتيجة نفسها. لقد تفحصت ملفات Discourse لمعرفة ما إذا كانت هناك أداة ذات صلة قد تساعد، ولكن لم أرَ شيئًا يبدو واعدًا.

تخميني الأفضل في الوقت الحالي هو أنه خلال هذا الأسبوع بعد إعداد Discourse المستضاف ذاتيًا، تم تغيير شيء ما في منتدانا التجريبي على trydiscourse.com.

أسئلتي هي:

  1. كيف يمكنني إجراء الترحيل الذي يقترحه الخطأ؟
  2. ما الذي تسبب بالضبط في فشل الاستعادة هذا؟ هل هذا شيء يمكن أن يحدث بشكل طبيعي (ليس أثناء الانتقال من تجريبي إلى مستضاف ذاتيًا)؟

شكرًا مقدمًا على أي مساعدة في هذا الأمر! :slightly_smiling_face:

إعجاب واحد (1)

يجب عليك التأكد من إعادة بناء المثيل المستضاف ذاتيًا بنفس المكونات الإضافية التي تم تثبيتها في نسختك التجريبية على الأقل.

بدلاً من ذلك، إذا كنت تشعر بالمغامرة، يمكنك إعادة تسمية ملف النسخ الاحتياطي الخاص بك، واستبدال 20220223161000 بـ 20220220234155 في اسم الملف.

6 إعجابات

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

(نفس @RGJ بالمناسبة).

3 إعجابات

شكراً على الردود! هذا مفيد جداً :heart:
لا زلت أتساءل عن كيفية إجراء الترحيل، ولكن يبدو أن ذلك قد لا يكون ضرورياً.

إعجابَين (2)