خطأ في تشغيل إعادة التوجيه بعد تغيير عنوان الموقع

غيرت عنوان URL لموقع Discourse الخاص بي، وأتبع التعليمات الموجودة في Change the domain name or rename your Discourse. عند محاولة تشغيل remap، أتلقى الخطأ التالي بشكل متكرر. يستمر في إخباري بإعادة تشغيل النص البرمجي، لكن نفس الخطأ يحدث في كل مرة.[1]

لا أعرف ما هي خطوتي التالية هنا، وسأكون ممتنًا للتوجيه. شكرًا مقدماً! :seedling:

root@digitallysovereign:/var/discourse# ./launcher enter app
x86_64 arch detected.
root@digitallysovereign-app:/var/www/discourse# discourse remap discourse.tobiaseigen.org digitallysovereign.org
Rewriting all occurrences of discourse.tobiaseigen.org to digitallysovereign.org
WILL RUN ON 'default' DB
THIS TASK WILL REWRITE DATA, ARE YOU SURE (type YES): YES

Remapping tables on default...

ai_api_audit_logs=919
ai_secrets=1
backup_metadata=1
browser_pageview_events=3664
Error: ERROR:  duplicate key value violates unique constraint "idx_bprd_rollups_date_referrer_unique"
DETAIL:  Key (date, normalized_referrer)=(2026-07-01, digitallysovereign.org) already exists.
The remap has only been partially applied due to the error above. Please re-run the script again.
root@digitallysovereign-app:/var/www/discourse# discourse remap discourse.tobiaseigen.org digitallysovereign.org
Rewriting all occurrences of discourse.tobiaseigen.org to digitallysovereign.org
WILL RUN ON 'default' DB
THIS TASK WILL REWRITE DATA, ARE YOU SURE (type YES): YES

Remapping tables on default...

Error: ERROR:  duplicate key value violates unique constraint "idx_bprd_rollups_date_referrer_unique"
DETAIL:  Key (date, normalized_referrer)=(2026-07-01, digitallysovereign.org) already exists.
The remap has only been partially applied due to the error above. Please re-run the script again.
root@digitallysovereign-app:/var/www/discourse# discourse remap discourse.tobiaseigen.org digitallysovereign.org
Rewriting all occurrences of discourse.tobiaseigen.org to digitallysovereign.org
WILL RUN ON 'default' DB
THIS TASK WILL REWRITE DATA, ARE YOU SURE (type YES): YES

Remapping tables on default...

Error: ERROR:  duplicate key value violates unique constraint "idx_bprd_rollups_date_referrer_unique"
DETAIL:  Key (date, normalized_referrer)=(2026-07-01, digitallysovereign.org) already exists.
The remap has only been partially applied due to the error above. Please re-run the script again.

  1. أعلم أن تعريف الجنون هو تكرار نفس الشيء مرارًا وتكرارًا والتوقع حدوث نتيجة مختلفة! :rofl: ↩︎

يبدو أن هناك تصادمًا في القيود (constraint collision) في جدول تحليلات PostgreSQL. قاعدة بياناتك تحتوي بالفعل على سجلات للنطاق الجديد في تواريخ محددة، لذا فإن أداة إعادة التوجيه (remap tool) تقوم على الأرجح بإنشاء سجلات مكررة، وPostgreSQL ترفضها.

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

جرب هذا:

cd /var/discourse
./launcher enter app
# إنشاء نسخة احتياطية
 discourse backup
# الدخول إلى وحدة تحكم قاعدة البيانات
discourse db
/* حذف السجلات المتصادمة */
DELETE FROM bprd_rollups 
WHERE normalized_referrer = 'discourse.tobiaseigen.org' 
AND date IN (
    SELECT date 
    FROM bprd_rollups 
    WHERE normalized_referrer = 'digitallysovereign.org'
);

/* الخروج من PostgreSQL */
\q

ثم شغل أداة إعادة التوجيه مرة أخرى

discourse remap discourse.tobiaseigen.org digitallysovereign.org

ثم استخدم مهمة rake rebake_match بدلاً من إعادة الخبز الكامل

# إعادة خبز المنشورات التي تحتوي على سلسلة النطاق الجديد فقط
rake posts:rebake_match["digitallysovereign.org"]