我最近成功使用 Discourse 内置的迁移脚本完成了 bbPress 数据库迁移。现在,我将以分步教程的形式分享这一过程。
注意:本教程适用于 bbPress 插件,而非 bbPress 的旧版独立版本。
可以导入哪些数据?
- 用户(包括匿名用户)
- 分类
- 主题
- 帖子
- 私信(通过 BuddyPress)
- 附件
- 固定链接
在开始迁移之前,请在您的机器上(或在虚拟机内)设置开发环境,并在那里运行导入操作,而不是在 Docker 容器内运行。当我尝试在 Docker 容器内运行时,遇到了 peer authentication failed(对等认证失败)问题。因此,我强烈建议您使用开发机器。请参阅 macOS 或 Ubuntu / Debian 的开发安装指南。
Discourse 需要 Ruby 3.4 或更高版本。您可以使用以下命令检查您的 Ruby 版本:
ruby -v
接下来,我们需要安装 libmysqlclient-dev 依赖项,以便能够使用 mysql2 gem。
sudo apt-get install libmysqlclient-dev
安装成功后,进入您的 Discourse 开发安装路径(通常为 ~/discourse)。
cd ~/discourse
配置数据库连接
bbPress 导入脚本会从环境变量中读取所有数据库连接设置。您无需编辑脚本文件。支持以下环境变量:
| 变量 | 默认值 | 描述 |
|---|---|---|
BBPRESS_HOST |
localhost |
MySQL 数据库主机 |
BBPRESS_USER |
root |
MySQL 用户名 |
BBPRESS_PW |
(空) | MySQL 密码 |
BBPRESS_DB |
bbpress |
MySQL 数据库名称 |
BBPRESS_PREFIX |
wp_ |
WordPress 表前缀 |
BBPRESS_ATTACHMENTS_DIR |
/path/to/attachments |
bbPress 附件目录路径 |
如果您正在迁移本地主机(localhost)上的数据库,通常只需设置数据库名称:
IMPORT=1 bundle && IMPORT=1 BBPRESS_DB="my_bbpress" bundle exec ruby script/import_scripts/bbpress.rb
如果您正在迁移外部服务器上的数据库,则还需要设置主机、用户名和密码:
IMPORT=1 bundle && IMPORT=1 BBPRESS_HOST="REMOTE_HOST_NAME" BBPRESS_USER="DB_USERNAME" BBPRESS_PW="MY_SECURE_PASSWORD" BBPRESS_DB="DB_NAME" bundle exec ruby script/import_scripts/bbpress.rb
恭喜! 您的数据库已成功从 bbPress 迁移到 Discourse
![]()
现在,请从管理页面 /admin/backups 备份数据,并将其导入到您的线上 Discourse 网站中。
将 bbPress 论坛迁移到 Discourse 后,如果您仍计划将 WordPress 网站作为主站点使用,并希望将其与 Discourse 连接,请安装 Discourse 官方 WordPress 插件。


