فشل استعادة Discourse بسبب خطأ وجود العلاقة مسبقاً

بسلسلة من الأحداث غير المحظوظة، يبدو أنني غير قادر على الاستعادة من أحدث نسخة احتياطية كاملة.

القصة كاملة ستُروى لاحقًا، لكن المشكلة التي أواجهها حاليًا هي أن عملية استعادة النسخة الاحتياطية تُظهر الخطأ التالي:

Migrating the database…
EXCEPTION: rake db:migrate
Failed to migrate database.
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled: (StandardError)

PG::DuplicateTable: ERROR:  relation "gamification_leaderboard_scores" already exists

يبدو أن هذه مشكلة تتعلق بالإضافات (plugins) الخاصة بي، لكنني أقدر مساعدتكم في فك شفرة السجلات (logs) للوصول إلى حل يسمح باستكمال عملية الاستعادة بنجاح.

على أي حال، هذا ما حدث:

في وقت سابق من اليوم، قمت بتحديث Discourse إلى الإصدار 2026.5.0-latest b0873d3ecd، مما أدخل بعض التغييرات الحرجة التي تسببت في توقف الموضوع الأساسي عن العمل. كان ينبغي عليّ التحقق من التوافق قبل التحديث.

في حالة من الذعر، ظننت أنني سأتمكن من الاستعادة من آخر نسخة احتياطية للعودة إلى إصدار Discourse متوافق مع الموضوع. قبل الاستعادة، قمت بأخذ نسخة احتياطية كاملة، معتقدًا أنه إذا حدث أي خطأ، سأمتلك أكبر عدد ممكن من نقاط الاستعادة.

حسنًا، حدث خطأ ما خلال أول عملية استعادة، وعاد Discourse للعمل دون آخر 15 يومًا من المحتوى. بعد البحث أكثر، وجدت موضوعًا على Meta اقترح إعادة تسمية ملف النسخة الاحتياطية من 2026-04-28-033449-v20260420014648.sql.gz إلى 2026-04-28-033449-v20260407093145.sql.gz. لست متأكدًا من سبب نجاح هذا الإجراء، لكنه على الأقل أعادني إلى نسخة احتياطية من أمس.

لا يزال عليّ استعادة النسخة الاحتياطية الكاملة الأخيرة التي تم أخذها هذا الصباح، وهي التي تظهر فيها الخطأ المذكور في الأعلى.

حدث هذا مع بعض الإضافات الأخرى. يبدو أن هناك عملية هجرة أنشأت الجدول، لكن نظام الهجرة لا يتعرف على أنها قد نُفِّذت.

لا أعرف كيف أشرح ذلك بشكل كافٍ لأي شخص. بشكل عام، يمكنك إيقاف عملية الاستعادة قبل أن تُجرى الهجرة (هناك خيار في أمر الاستعادة للقيام بذلك) ثم حذف الجدول، أعتقد. إذا كان ذلك منطقيًا، أو شبه منطقي، فقد تتمكن من حل المشكلة بمساعدة من https://ask.discourse.com/

إذا لم يكن ذلك مفيدًا، وأنت في عجلة من أمرك ولديك ميزانية، يمكنك السؤال في Marketplace أو مراسلتي عبر البريد الإلكتروني. أما إذا لم تكن مستعجلًا، أو لا تملك ميزانية، فهناك احتمال أن يتمكن شخص ما من شرح ما يجب فعله بطريقة تفهمها.