لقد كنت أبحث في المنتدى عن معلومات حول تحديث external_id في قاعدة بيانات Discourse.
وجدت هذا الموضوع مثيرًا للاهتمام:
ومع ذلك، كنت مهتمًا ببعض الأفكار المتعلقة بتداعيات تحديث external_id على قاعدة البيانات.
هل يمكنني ببساطة إصدار تحديث SQL وتعيين external_id الصحيح الجديد؟ هل يمكن أن يؤدي ذلك إلى أي مشاكل خفية؟ مثل إذا كان لدى المستخدم جلسة مفتوحة حالية أو أي شيء آخر؟
لقد حصلت على المستخدمين الذين تم إنشاؤهم عبر SSO باستخدام external_id وهو معرف حساب المستخدم في النظام الخارجي. (قد أحتاج إلى نمذجة شيء آخر ولكن سيكون من الرائع تجنب تغيير نموذج النظام الخارجي على الأقل في الوقت الحالي)
المشكلة بالنسبة لي هي أن الشخص قد يكون لديه أكثر من حساب واحد في النظام الخارجي ويمكنه دمج تلك الحسابات في حساب واحد، لذا في بعض الأحيان اعتمادًا على كيفية الدمج، يمكن أن يأتي external_id جديد لنفس المستخدم/البريد الإلكتروني.
أنا أستخدم خيار require_activation لذلك، كما قرأت في الموضوع المذكور، لا يمكنني حذف السجل وانتظار إعادة إنشائه.
في هذه الحالة، يمكنك إما
أ) مزامنة جميع الحسابات مع Discourse باستخدام آلية مزامنة تسجيل الدخول الموحد (SSO)
ب) تتبع الحسابات التي تم استخدامها لتسجيل الدخول إلى Discourse
أو
ج) عند الدمج، إجراء بحث عن معرف خارجي لتحديد الحسابات التي تم استخدامها مع Discourse