我尝试仅通过 API 导入数据,但看起来推荐使用导入器。我的数据实际上来自一个我已转换为 JSON 的 ListServ RSS 源。
通过搜索相关议题,我发现我需要的数据格式如下:
"topics": [
{
"id": 1,
"title": "The title",
"pinned": false,
"posts": [
{
"id": 2,
"body": "The body",
"date": "The date",
"author": "username"
}
]
}
]
}
第一个问题:这是 json_generic 的正确格式吗?
第二个问题:关于如何使用它,还有更多信息吗?
pfaffman
(Jay Pfaffman)
2
如果你能访问 mbox 文件,那会容易得多。
通用导入脚本正是如此,你需要查看代码以了解它期望的格式,然后调整代码或你的数据以使其匹配。
关键部分在这里:
我认为我无法访问 mbox 文件。我是一名订阅者,只拥有该群组中的少量邮件。我已经尝试过这个途径。系统位于不同的分支中,而我正试图向我们的组织展示 Discourse。
您能否确认我的 JSON 结构(除缺少某些字段外)是否正确?
pfaffman
(Jay Pfaffman)
4
乍一看,你似乎方向正确。不过,你当然需要确保字段名称正确,并且必须导入用户数据,功能才能正常运行。
我已经通过 API 导入了用户。看来这次运气不错。内容无法通过验证,而且看样子我无法禁用验证,以便直接将 JSON 文件上传到本地的 Discourse。
我猜每篇帖子都需要去 Discourse 获取 userId。这样理解对吗?还是有其他更好的方法?
pfaffman
(Jay Pfaffman)
6
建议从头开始,让脚本创建用户。它需要在用户自定义字段中提供导入 ID,以便执行用户查找。
既然我需要重新创建用户,这样做可行吗?在这个例子中,用户 1(John Doe)创建了主题 1 “The Title”,该主题包含 1 篇由 John Doe 发布的帖子,内容为 Body?
如果这是正确的,我该如何使用 json_generic 脚本来启动这个过程?我对下一步操作有些困惑。
"topics": [
{
"id": 1,
"user_id": "1",
"title": "The title",
"pinned": false,
"posts": [
{
"id": 2,
"user_id": "1",
"body": "The body",
"date": "The date",
"author": "username"
}
]
}
],
"users": [
{
"id": "1",
"name": "John Doe",
"email": "John_Doe@wahoo.com",
"password": "asfd9!t",
"username": "John Doe",
"active": true,
"approved": true
},
]
}