在本教程中,我们将学习如何使用官方 导入脚本 将 PunBB 论坛迁移到
平台。让我们开始吧 ![]()
可迁移的内容
-
主题与回复 => 主题与帖子
-
分类与论坛
- 根分类 => 根分类
- 子分类 => 子分类
- 根论坛 => 子分类
- 子论坛 => 子分类
-
用户
- 用户名
- 姓名
- 邮箱
- 网站
- 权限状态
- 所在地
- 加入日期
- 管理状态
- 封禁状态
我们的计划非常简单,只需要:
- 设置本地开发环境(DEV ENV)。
- 导出生产数据库。
- 将生产数据库导入 Discourse。
- 运行 PunBB 导入脚本。
让我们开始吧 ![]()
设置本地开发环境(DEV ENV)
首先,您需要按照以下指南之一安装 Discourse 平台。如果您遇到任何问题,请参阅 此指南。
安装 MySQL 数据库服务器;
MacOS:
$ brew install mysql@5.7
$ echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile
通过运行以下命令检查服务状态:
$ brew services list
您应该看到类似以下内容:
mysql@5.7 started
如果没有,请运行以下命令并重新检查状态:
$ brew services start mysql@5.7
Ubuntu 18.04:
运行以下命令安装 MySQL 服务器:
$ sudo apt update
$ sudo apt install mysql-server -y
安装完成后,检查其状态:
$ systemctl status mysql.service
如果未运行,请运行以下命令:
$ sudo systemctl start mysql
对于 Windows,您可以按照 安装指南 进行操作。
现在,我们的开发环境已准备就绪。我们将称之为:Discourse 服务器。
导出生产数据库
通过运行以下命令导出/备份生产数据库(来自 PunBB 生产服务器):
$ mysqldump -u USER_NAME -p DATABASE_NAME > punbb.sql
- 将此数据库转储文件复制到 Discourse 服务器。
您可以使用
scp或rsync来复制数据库。
将生产数据库导入 Discourse
在 Discourse 服务器 上创建一个新空数据库。为此,我们需要使用 MySQL 命令行界面(CLI):
$ mysql -u root
如果您的数据库用户有密码,请运行以下命令然后输入密码:
mysql -u root -p
mysql> CREATE DATABASE punbb;
通过运行以下命令确保数据库已成功创建:
mysql> SHOW DATABASES;
您应该看到类似以下内容:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| punbb |
+--------------------+
我们的下一步是将生产数据库导入到这个新的空数据库中。
$ mysql -u root punbb < punbb.sql
运行 PunBB 导入脚本
首先安装导入器的依赖项。在 Discourse 服务器 上执行:
$ cd ~/discourse
$ echo "gem 'mysql2', require: false" >> Gemfile
$ bundle install
接下来,您应该配置脚本以使其正常运行。使用您喜欢的编辑器打开 script/import_scripts/punbb.rb 并进行修改。本质上,您需要做的是提供 MySQL 数据库信息:
PUNBB_DB = "DATABASE_NAME"
.
.
.
@client = Mysql2::Client.new(
host: "localhost",
username: "MYSQL_USERNAME",
password: "MYSQL_PASSWORD",
database: PUNBB_DB
)
使用干净的 Discourse 实例运行导入器:
$ bundle exec rails db:drop
$ bundle exec rails db:create
$ bundle exec rails db:migrate
$ bundle exec ruby script/import_scripts/punbb.rb
导入器将连接到 MySQL 数据库,并将您的 PunBB 论坛数据库迁移到 Discourse 数据库。
导入完成后,通过运行以下命令启动 Discourse 服务器:
$ bundle exec rails server
接下来,启动后台作业处理器以处理迁移的数据:
$ bundle exec sidekiq
您可以在以下 URL 监控 Sidekiq 的进度:
http://localhost:3000/sidekiq/queues。
接下来,按照此 教程 准备您的 Discourse 生产服务器。
按照此 教程 对本地 Discourse 服务器 平台进行备份,并将其上传到您的 Discourse 生产服务器。
如果您对流程有任何疑问,我很乐意提供帮助。
祝迁移顺利 ![]()