Tenho pesquisado no fórum por informações sobre a atualização do external_id no banco de dados do Discourse.
Encontrei este tópico interessante:
Ainda assim, estava interessado em algumas percepções sobre as implicações de atualizar o external_id no banco de dados.
Posso simplesmente emitir uma atualização SQL e definir o novo external_id correto? Isso pode trazer algum problema oculto? Como se o usuário tivesse uma sessão aberta atual ou algo mais?
Criei os usuários através do SSO usando um external_id que é o ID da conta do usuário no sistema externo. (Talvez eu precise modelar algo mais, mas seria legal poder evitar mudar o modelo do sistema externo, pelo menos por enquanto)
O problema para mim é que a pessoa pode ter mais de uma conta no sistema externo e pode mesclar essas contas em uma, então às vezes, dependendo de como ele mescla, um novo external_id pode vir para o mesmo usuário/email.
Estou usando a opção require_activation, então, como li no tópico mencionado, não posso excluir o registro e esperar que ele seja recriado.
a) Sincronizar todas as contas com o Discourse usando o mecanismo de sincronização SSO
b) Manter o controle de quais contas foram usadas para fazer login no Discourse
ou
c) Ao mesclar, fazer uma pesquisa de ID externo para determinar quais contas foram usadas com o Discourse