He estado buscando en el foro información sobre la actualización de external_id en la base de datos de Discourse.
Encontré este tema interesante:
Aún así, estaba interesado en algunas ideas sobre las implicaciones de actualizar el external_id en la base de datos.
¿Podría simplemente emitir una actualización SQL y establecer el nuevo external_id correcto? ¿Puede eso traer algún problema oculto? ¿Como si el usuario tuviera una sesión abierta actual o algo más?
Tengo los usuarios creados a través de SSO usando un external_id que es el ID de cuenta del usuario en el sistema externo. (Puede que necesite modelar algo más, pero sería genial poder evitar cambiar el modelo del sistema externo al menos por ahora)
El problema para mí es que la persona puede tener más de una cuenta en el sistema externo y puede fusionar esas cuentas en una, por lo que a veces, dependiendo de cómo fusione, puede surgir un nuevo external_id para el mismo usuario/correo electrónico.
Estoy usando la opción require_activation, así que, como he leído en el tema mencionado, no puedo eliminar el registro y esperar a que se recree.
a) Sincronizar todas las cuentas con Discourse utilizando el mecanismo de sincronización SSO.
b) Hacer un seguimiento de qué cuentas se han utilizado para iniciar sesión en Discourse.
o
c) Al fusionar, realizar una búsqueda de ID externo para determinar qué cuenta(s) se han utilizado con Discourse.