我一直在论坛上搜索有关更新 discourse 数据库中 external_id 的信息。
发现这个话题很有趣:Is it possible to change users SSO's external_id after a DB migration?
尽管如此,我还是想了解一些关于更新数据库中 external_id 的影响的见解。
我可以直接发出一个 SQL 更新并设置新的正确的 external_id 吗?这会带来什么隐藏问题吗?比如用户当前是否有打开的会话或其他问题?
我是通过 SSO 使用 external_id 创建的用户,该 external_id 是用户在外部系统中的帐户 ID。(我可能需要模拟其他东西,但至少目前能够避免更改外部系统模型会很棒)
我的问题是,该用户在外部系统上可能有多个帐户,并且可以将这些帐户合并为一个,因此有时根据他如何合并,同一个用户/电子邮件可能会出现一个新的 external_id。
我正在使用 require_activation 选项,正如我在上述话题中所读到的,我不能删除记录并等待它被重新创建。
谢谢
RGJ
(Richard - Communiteq)
2
是的,你应该可以做到,但你应该先解决真正的问题
例如,在合并账户时,请始终确保分配/使用最低的 ID。
3 个赞
是的……在合并外部账户时,我会保留最旧的账户……但有时这并不是我想要的。
有些账户会与论坛互动(比如 A 类),而另一些账户则不打算这样做(B 类)。
所以,如果他们先创建一个 B 类账户……
然后他们又创建了一个 A 类账户,并在论坛上使用 SSO 登录。
之后他们合并 A 和 B 账户,并保留具有不同 external_id 的最旧账户。
所以是的……
我需要为我的外部系统想出一个解决方案……
但我认为我会设置一个每日 cron 任务,检查是否发生了这种情况,并暂时修复 external_ids。
谢谢!
RGJ
(Richard - Communiteq)
4
在这种情况下,您可以选择:
a) 使用 SSO 同步机制将所有账户同步到 Discourse
b) 跟踪哪些账户已用于登录 Discourse
或
c) 在合并时,通过外部 ID 查找 来确定哪些账户已与 Discourse 一起使用
system
(system)
关闭
5
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.