خطأ في استيراد النسخ الاحتياطي: "تعذر إنشاء فهرس فريد"

حسنًا، لقد أصلحت المشكلة. قمت بالخطوات التالية

الدخول إلى الحاوية

./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

ثم أخذت نسخة احتياطية أخرى، ونسختها إلى الخادم الجديد، وتمت استيراده بنجاح :smiley:

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

شكرًا جزيلاً لمساعدتك.