عند إعداد منصة Discourse جديدة مع تفعيل خيار “يجب الموافقة على المستخدمين”، اكتشفت أنه بعد إنشاء مستخدم اختباري ثم حذفه، تم إعادة استخدام معرف المستخدم نفسه لاحقًا عند تسجيل مستخدم حقيقي. ولكن نظرًا لبقاء صف في جدول public.reviewables يحمل نفس قيمة target_id، لم يتم إنشاء صف جديد لهذا المستخدم الثاني. نتيجة لذلك، عرضت واجهة المستخدم اسم المستخدم المحذوف حاليًا عند مطالبة المستخدم الجديد بالموافقة عليه.
كيف قمت بحذف المستخدم التجريبي الأولي؟ هل كان ذلك عبر واجهة مستخدم Discourse أم من وحدة تحكم Rails؟
تمت إدارة جميع المستخدمين عبر واجهة المستخدم
لم أتمكن من إعادة إنتاج هذه المشكلة، وللأسف لم أكن أسجل بعناية جميع الخطوات التي اتبعتها، حيث كنت أتعلم فقط كيفية تشغيل Discourse. لدي السجلات الحالية من جداول users و reviewables والتي تؤيد جزئيًا ما رأيته، في حال كان هناك أي دليل فيها، بالإضافة إلى سجلات nginx و rails.
نستخدم تسلسلات PG لـمعرفات المستخدمين، وهي تزيد دائمًا. حتى لو قمت بالتراجع عن معاملة، سيستمر التسلسل في الزيادة.
سيكون الأمر يتطلب تدخلاً مباشرًا في قاعدة البيانات لكسر هذا القيد (مثل إعادة تعيين تسلسل المعرف في جدول المستخدمين).
أغلق هذا الطلب حتى يتم إعادة إنتاج المشكلة، وإذا تمكنت من إعادة إنتاج هذه الحالة، يرجى الإشارة إلى إعادة فتحه.