合并Discourse和SMF

你好!

我有以下问题:
我从 2017 年开始有一个 SMF 论坛,现在大约有 4000 个帖子。
去年我并行运行了一个 Discourse 论坛,大约有 1000 个帖子,但目前它已下线,因为我在 2021 年 12 月回到了 SMF。
好吧,我就是不喜欢 SMF 了,所以我想将其迁移到 Discourse,但我也想保留 Discourse 论坛上的 1000 个帖子。
我有 Discourse 论坛的备份,从 SMF 备份也没有问题。

将 SMF 迁移到 Discourse 应该不是问题,尽管我从未尝试过。
我必须承认,两者有相似的类别,但也有差异。

是否可以将两个论坛合并成一个?
如果可以,最好的方法是什么?

从 SMF 我只需要用户,这两个论坛的用户基本相同(或多或少),以及帖子。原则上,SMF 论坛的所有帖子都可以导入到一个单独的类别中,然后我会自己将它们移动到正确的类别(或者就将其保留在那里作为一种存档)。

我的方法如下:

  1. 我备份当前的 SMF,然后将其导入到第二个 SMF 中,并将所有主题和帖子移到一个类别中,然后再次备份以导入到 Discourse。
  2. 我将“旧”的 Discourse 论坛重新上线。(有或没有那 1000 个帖子?)
  3. 我导入 SMF 的备份。

这里我的问题是这是否可行,因为主题和帖子有来自 SMF 的 ID 和时间戳,并且这些与用户等相关联。

说实话,我不知道如何进行,也不知道这是否可行。
脚本是否已针对 SMF 2.1.x 进行了调整?

任何帮助都将不胜感激!

我不确定 Discourse 是否支持 SMF 的原生备份。我知道 Discourse 官方团队可以协助迁移,但我不知道费用。过去,我曾使用 Discourse API 迁移大量论坛数据。我在 Discourse 论坛上创建了我的分类。完成后,我创建了一个 Python 脚本来抓取我的旧论坛并用主题、用户等填充新论坛。

文档中有一条关于如何从 SMF 迁移到 Discourse 的说明。

https://meta.discourse.org/docs?topic=90314

如果我会编程,用一个脚本从 SMF 抓取数据并导入到 Discourse 中会很好。:wink:

2 个赞

啊,好的。我不知道他们有关于如何从 SMF2 迁移的官方文档。您的论坛是 SMF2 还是 SMF1 论坛?

有,也有没有,它是 SMF 2.1.x,SMF 从 2.0.x 到 2.1.x 改变了很多。

而且我仍然有合并两个论坛的问题。

1 个赞

好的。感谢您的信息 :slight_smile:
您在迁移指南的哪个步骤遇到问题?migration guide

1 个赞

另请参阅:Merge two Discourse sites into one

需要注意的是,我没有亲自进行过迁移,但我的方法是:

  • 将您的 SMF 数据迁移到一个新的实例
  • 使用上述指南合并两个 Discourse 实例

嗯,我们都有自己的“锤子”,但我发现将 SMF 站点合并到 Discourse 的脚本会遗漏很多边缘情况(我现在记不清具体是什么了)。然后你还需要进行两次迁移。

我可能会直接在现有的 Discourse 站点上运行 SMF 脚本。当我这样做的时候,我进行了一些调整,比如合并分类和对齐站点之间的用户。如果你懂一点编程,即使你不懂 Ruby,这些脚本通常也足够容易理解。

2 个赞

我现在还没有开始。
但是,我的问题是 1. 这个脚本是否适用于 SMF2.1,以及 2. 是否可以将 SMF 合并到现有的 Discourse 实例中。

我完全错过了这个。感谢您的回答。我认为这应该是可行的。

@pfaffman
我不需要 SMF 的所有内容,只需要帖子、主题和用户。

也许我需要调整一下才能让它工作。

这几乎就是需要导入的所有内容。导入分类可能比不导入更容易。

是的。而且在您尝试之前,无法知道需要多少工作。

我想我会按以下步骤操作:

  1. 导出我的 SMF 并将所有主题(连同帖子)移到一个类别中,然后备份数据库。
  2. 安装一个全新的 Discourse 并导入 SMF 备份(希望导入脚本能与 SMF 2.1 一起使用)。
  3. 删除并重新安装 Discourse,然后上传我的 Discourse 备份(包括设置和帖子)。
  4. 使用 @supermathie 链接的指南将两个 Discourse 论坛合并为一个。

我希望这能奏效,否则我需要找人帮我做。