当我开始迁移我运行 vB 3 的 24 年历史的 vBulletin 论坛时,这并非属实。该脚本存在多个不兼容和其他问题。但是,我付出了很多努力,基于 vB4 的脚本创建了一个 vBulletin 3 的导入器。
改进后的脚本包含在 Discourse 中,名为 vbulletin3.rb。vB3 导入脚本的使用方法与本教程中的描述相同。只需执行 bundle exec ruby script/import_scripts/vbulletin3.rb 即可。
vBulletin3 包含一些重要的更改/改进:
- 复制论坛权限
- 创建论坛版主组
- 创建可加入的用户组并进行正确配置
- 论坛嵌套深度最多可达 3 层(Discourse 的最大深度)
- 为所有帖子和回复注册永久链接,防止链接失效
- 复制了一些基本的论坛设置(例如,标题、通知电子邮件、公司名称)
- 导入投票
- 对 bbcode 到 markdown 的转换进行了重大改进
- 帖子、回复、附件的 URL 深层链接将转换为 Discourse 引用,这需要将环境变量
FORUM_URL设置为forum.hostname/path(无协议)。
与其尝试将 vBulletin 私信转换为 Discourse 私信,用户将收到一个系统私信,其中包含他们之前私信的存档。vBulletin 的 PM 结构与 Discourse 并不真正兼容。尝试转换它也会暴露一些隐私问题,具体取决于人们在 vBulletin 中使用 PM 的方式。
与其他导入器一样,转换可能需要相当长的时间。在我的工作站上,转换 7k 用户、16k 帖子、415k 回复的转换脚本花费了 5.5 小时。我不知道帖子处理花了多长时间,我让它在夜间运行。从开始到结束,论坛停机了 30 小时。最终,我对结果感到满意。