通过API更改用户注册日期 (created_at)

你好,我正在尝试通过 API 从另一个平台迁移到 Discourse。
我有很多用户,需要将他们迁移到 Discourse。
当我创建用户时,其创建日期默认为今天。
但许多用户在论坛上已经活跃了 10 年以上,迁移后丢失这些信息实在可惜。

当我尝试通过 API 更新用户时,我想更新 created_at 字段:

'created_at' => '2013-05-04T11:49:06.782Z'

但日期并未发生变化。或许还有其他方法?

2 个赞

有没有理由不使用迁移脚本?您可能会遇到的这个问题以及其他许多问题都将得到解决。

2 个赞

是的,我们在获取数据库转储文件后,将使用贵团队的迁移方案。

目前我还在进行实验,因为我对 Discourse 的所有功能尚未完全熟悉。在旧论坛上,我们有特殊的用户组和角色。我正在通过 API 进行导入,以便在 Discourse 中配置这些内容。

此外,我也希望详细了解如何操作信任等级、用户组和徽章。其中一些功能与注册日期相关。

这些都不依赖于用户创建日期。:wink:

我想你或许可以在推送或帖子中设置一个 created_at 值。

1 个赞

好的,
我刚刚看到了根据天数变化的设置,但尚未仔细阅读。先留到用户测试阶段再处理。

2 个赞

我认为你或许可以在推送或帖子中设置 created_at 值。

我发起请求以更新测试中的多个字段:

    'created_at' => '2013-05-04T11:49:06.782Z',
    'user_fields' => [
        1 => '104',
        2 => 'Patron'
    ]

在这种情况下,user_fields 已顺利更新。因此我决定在论坛中提问。也许 created_date 是通过其他请求(例如具有专用 URL API 的 trust_levels)进行更新的。

1 个赞

你可以在 Rails 控制台中完成此操作。你也可以直接更改他们的信任级别。Discourse 中各种用户状态的描述(管理员/版主/工作人员/开发者/其他) 该分类下还有其他相关主题。

1 个赞

感谢您的分享和真知灼见👌