مرحباً وواو، أهلاً بعودتك بعد 9 سنوات!
من الرائع جداً رؤية منتدى يعمل منذ فترة طويلة.
أعتقد أن هذه هي مشكلة الفهرس نفسها التي نوقشت هنا: Can't restore due to corrupt indexes (with some clues on how to deal with corrupt indexes)
الأمر يتعلق بما يلي:
جدول incoming_referers يتتبع مسارات عناوين URL التي أحالت الزوار إلى منتداك. يحتوي على فهرس فريد، مما يعني أنه لا يمكن أن يكون هناك صفان لهما نفس التركيبة من المسار + النطاق.
قاعدة البيانات الخاصة بك تحتوي على صفين مع path='//' و incoming_domain_id=5. عندما تحاول إعادة بناء هذا الفهرس الفريد أثناء الاستعادة، تجد التكرار وتوقف عملية الاستعادة بأكملها.
لذلك ستحتاج إلى العثور على المكرر في incoming_referers وتنظيفه، ثم إنشاء نسخة احتياطية جديدة للاستعادة على الخادم الجديد.
لقد وجدت هذا الموضوع الذي يحتوي على تعليمات قد يساعدك
glynhudson:
أدخل الحاوية
./launcher enter app
توصيل بقاعدة البيانات
su postgres -c 'psql discourse'
حاول العثور على المكررات
discourse=# select * from incoming_referers where path LIKE '%/search/' ORDER BY incoming_domain_id;`
id | path | incoming_domain_id
------+------------+--------------------
3339 | /search/ | 33
6257 | /search/ | 91
1567 | /search/ | 298
1777 | /search/ | 341
3010 | /search/ | 418
6247 | /search/ | 418
4293 | /search/ | 644
2899 | /search/ | 653
3447 | /search/ | 793
3696 | /search/ | 852
4395 | /a/search/ | 1050
6968 | /search/ | 1305
5634 | /search/ | 1387
5834 | /search/ | 1437
6519 | /search/ | 1637
7127 | /search/ | 1787
7280 | /search/ | 1827
(17 rows)
احذف المكرر
DELETE FROM incoming_referers WHERE path LIKE '%/search/' AND id IN (6247);
ثم أعد البناء
discourse=# REINDEX SCHEMA CONCURRENTLY public;
WARNING: cannot reindex invalid index "public.incoming_referers_pkey_ccnew" concurrently, skipping
WARNING: cannot reindex invalid index "public.index_incoming_referers_on_path_and_incoming_domain_id_ccnew" concurrently, skipping
WARNING: cannot reindex invalid index "pg_toast.pg_toast_20732_index_ccnew" concurrently, skipping
REINDEX