从 XenForo 迁移到 Discourse 遇到的问题

大家好,从第 7 步开始,我遇到了问题。非常希望能得到帮助。我之前从未接触过 Ruby,所以可能有些在第 7 步之前显然需要的步骤,我因为缺乏经验而不知道。如果这个问题显得天真,请见谅。

当我运行:

我得到了以下结果:

-bash: Gemfile: 权限被拒绝

这发生在一台全新安装并正常运行的 Discourse 服务器上。

我是否需要安装其他组件或软件才能使从第 7 步开始的步骤生效?

另外,我注意到这个帖子最初是几年前发布的。原始帖子(OP)中的每个步骤现在仍然正确吗?

谢谢!

好的,我之前在这里提交了一篇完整的帖子,但后来我删除了它,因为随着我对这个问题的深入研究,我意识到自己对 Docker 如何与 Discourse 安装配合工作存在严重的误解。我之前的帖子可能会让人困惑,因为基本上我当时并不清楚自己在说什么。:joy:

我当时是手动将导入文件添加到 /var/discourse/ 目录中,而实际上我应该是在 Docker 容器内部寻找这些文件。现在回头看,这是一个明显的错误,但当时我确实非常困惑。虽然说明文档可以更清晰地指出这一点,但我最终还是自己弄明白了并解决了问题。

我成功让此导入脚本在拥有超过 100 万帖子的论坛上运行。我注意到以下几点:

  1. 头像缺失。在查看脚本后,我没有发现任何关于头像的引用。请确认一下,头像是否确实未被导入?

  2. 所有帖子的浏览量都显示为 0。这是预期行为吗?

  3. 访客帖子(如果用户账户已被删除,其用户名在 XenForo 中被标记为“访客”)均显示为“系统”。有没有办法至少将这些帖子的作者统一显示为“访客”而不是“系统”?Discourse 是否支持未归属于已注册账户的帖子?

是否有其他导入脚本支持导入头像和帖子浏览量?我想查看这些脚本,并评估修改 xenforo.rb 脚本的难度。

我对 vBulletin 和 XenForo 的数据库非常熟悉。只需要有人指引我了解 Discourse 中如何存储帖子浏览量和头像,以便我能正确地进行映射。

这些都不令人意外。

我通常使用 grep 在脚本目录中搜索我要查找的内容(Avatar)。对于视图,我认为只需将其添加到 SQL 查询中,并将该字段添加到创建记录的语句中。对于访客用户,如果用户查找失败,会有一行使用 system 命令。你可以将其替换为你创建的访客用户。

我仔细查看了这个脚本,但似乎找不到导致所有 ID 从 1 开始递增而不是与源数据库完全匹配的原因。

我希望转发现有的 URL,而保持所有 ID 不变是实现这一点的最佳方式。包括用户 ID、帖子 ID、主题 ID、分类 ID 等等。

脚本目前将所有 ID“映射”到了新的 ID。

我是否忽略了某个显而易见的设置,可以在导入后强制所有 ID 保持不变?

如果这个问题超出了本论坛的讨论范围,我也理解。无论如何,感谢您的阅读!:+1:

并非如此。您需要为每个用户、帖子、主题和分类创建固定链接。请参见“管理” → “自定义” → “固定链接”。许多其他导入工具都支持创建固定链接。