فشل `discourse remap`

لقد قمت بنقل منتدى من name.com إلى forum.name.com لكن العملية فشلت:

خطأ: ERROR: duplicate key value violates unique constraint “unique_post_links”
التفاصيل: المفتاح (topic_id, post_id, url)=(246, 813, http://forum.name.com) موجود بالفعل.
تم تطبيق إعادة الربط جزئيًا فقط بسبب الخطأ المذكور أعلاه. يرجى إعادة تشغيل السكربت مرة أخرى.

لذا قمت بتشغيله مرة أخرى (وفشل مرة أخرى)، ثم نفذت أمر rake posts:rebake وفحصت المنتدى فوجدت بعض الحالات التي تحتوي على forum.forum.name.com. (لذا قمت بتنفيذ discourse remap forum.forum.name.com forum.name.com ثم rake posts:rebake لمحاولة إصلاح الأمر - مع بعض النجاح، حيث اضطررت لتغيير بعض الحالات يدويًا).

لدي بعض الأسئلة:

  • هل أمر discourse remap name.com forum.name.com ينطبق فقط على محتوى المنشورات؟ إذا لم يكن كذلك، هل يجب أن أراجع إعدادات الموقع (Site Settings) فقط للبحث عن المشاكل المحتملة؟
  • هل يجب تنفيذه ضمن نوع من المعاملات (Transaction)؟ (إذا كان الأمر كذلك، فلم يبدو أنه تم ذلك عندما فشل الأمر لدي).

لا، بل ينطبق على قاعدة البيانات بأكملها: المنشورات، إعدادات الموقع، السمات، الملفات المرفوعة، وكل شيء.

أهلاً، نعم، عند النظر إلى الخطأ الكامل مرة أخرى، يبدو أنه تم تنفيذ الخطوات التالية:

backup_metadata=1
categories=6
email_logs=306
email_tokens=1
groups=1
incoming_domains=3
incoming_emails=3
javascript_caches=4
post_custom_fields=275
post_revisions=134
posts=441
post_search_data=50
search_logs=8
site_settings=5
stylesheet_cache=540
theme_fields=9
theme_settings=3

لقد راجعت جميع إعدادات الموقع وهي على ما يرام (وكذلك السمات)، وأظن أن جميع الخطوات المذكورة أعلاه قد أُجريت. هل يمكنك رؤية أي شيء كان يجب أن يُنفذ ولم يُنفذ؟ هل تعتقد أنه من الآمن المتابعة كما هو، أم تظن أنه يجب إعادة البدء من الصفر؟

أيضاً، هل لديك أي أفكار حول سبب تزايد تكرار أخطاء duplicate key value violates unique constraint في منصة Discourse؟ لقد لاحظت بعض المواضيع حول هذا الأمر، وأعتقد أن هذه هي المرة الثالثة التي أواجه فيها مثل هذه المشكلة بنفسي.

لا، ليس من خلال المخرجات. نحن نعرض فقط الجداول التي تحتوي على تغييرات. لا توجد طريقة لمعرفة ما إذا كان جدول غير موجود في القائمة بسبب خطأ، أم ببساطة لعدم وجود أي حالات لـ name.com في الجدول (غير المدرج).

للأسف، هذا خارج نطاق خبرتي.

شكرًا لك يا جوشوا.

هل لديك أي فكرة عما تعنيه الأرقام؟ هل هي عدد التغييرات؟

ما هو المسار الموصى به الآن؟ إصلاح خطأ قيد التقييد الفريد ثم التراجع (الانتقال من forum.name.com إلى name.com، ثم العودة مرة أخرى) أم فعل شيء آخر؟

تعديل: تم

لقد دخلت إلى التطبيق ووحدة تحكم Rails ثم حذفت TopicLink المعني، ثم انتقلت من forum.name.com إلى name.com، ثم عدت مرة أخرى.

backup_metadata=1
categories=6
email_logs=318
email_tokens=2
groups=1
incoming_domains=3
incoming_emails=3
javascript_caches=4
post_custom_fields=277
post_revisions=140
posts=444
post_search_data=51
search_logs=10
site_settings=5
stylesheet_cache=564
theme_fields=9
theme_settings=3
topic_links=281
topics=30
topic_search_data=8
translation_overrides=1
uploads=54
user_auth_token_logs=48
user_emails=2
user_histories=189
تم