[2024-08-03 16:45:29] CREATE INDEX
[2024-08-03 16:45:29] CREATE INDEX
[2024-08-03 16:45:29] ERROR: function discourse_functions.raise_discourse_voting_category_settings_readonly() does not exist
[2024-08-03 16:45:29] EXCEPTION: psql failed: ERROR: function discourse_functions.raise_discourse_voting_category_settings_readonly() does not exist
لم أفعل، كانت المشكلة هي أن إضافة التصويت على المشاركات لم تكن مثبتة. من المثير للاهتمام أنها لم تكن مفعلة في الموقع الرئيسي (فقط مثبتة افتراضيًا) ولكنني أفترض أن ذلك كان كافياً للتسبب في الخطأ. شكراً.
أواجه نفس الخطأ في نسخة تطوير (حيث قمت للتو بالترقية إلى pg16 للحصول على أحدث إصدار من pgvector الذي كان يسبب فشل هذا الاستعادة سابقًا) والتي قمت للتو بسحبها (git pull).
لقد أضفت كلاً من التصويت على المشاركات والتصويت على المواضيع (كان التصويت على المواضيع موجودًا في المصدر).
كان ميلي إلى
DROP table discourse_voting_category_settings;
ولكن بعد ذلك احتجت إلى إضافة CASCADE وخفت وقمت بمحاولة الاستعادة إلى بيئة الاختبار.
في موقع اختبار، إذا حاولت استعادة نفس قاعدة البيانات، أحصل على هذا:
ERROR: type "hotlinked_media_status" already exists
EXCEPTION: psql failed: ERROR: type "hotlinked_media_status" already exists
/var/www/discourse/lib/backup_restore/database_restorer.rb:92:in `restore_dump'
/var/www/discourse/lib/backup_restore/database_restorer.rb:26:in `restore'
/var/www/discourse/lib/backup_restore/restorer.rb:51:in `run'
هذا يبدو مختلفًا. لقد نسيته خلال الأسابيع الثلاثة الماضية ولكن منذ ذلك الحين كانت لدينا بعض الحالات التي فشلت فيها النسخ الاحتياطية في الاستعادة عندما لم يتم تثبيت المكون الإضافي للتصويت على المنشورات. لذا هذا أمر مؤكد.
لكن hotlinked_media_status هو جدول أساسي من عام 2022 … لذا يجب أن يكون هذا شيئًا مختلفًا.
حسنًا، لقد تأكدت من أن نسخة التطوير تحتوي على جميع الإضافات الموجودة في موقع الإنتاج وقمت باستعادة النسخة الاحتياطية هناك!
لكن موقع الاختبار، (الذي يفتقد إضافة مصادقة مايكروسوفت لسبب ما، ولكن لا يمكن أن يكون ذلك هو السبب، أليس كذلك؟!؟!؟!) لا يزال يعاني من مشكلة EXCEPTION: psql failed: ERROR: type \"hotlinked_media_status\" already exists.