刚刚完成了一个拥有百万帖子的 Xenforo 到 Discourse 的迁移,运行在 Digital Ocean 的 Droplet 上。以下是我按步骤操作的成功命令(与之前在另一个 vBulletin 论坛上所做的操作非常相似)。
建议导入时至少使用 4 核 vCPU 和 8GB 内存。
感谢本线程中的每一位帮助我完成这些迁移的人,这几天反复阅读和重读确实是一段有趣的经历。
1 - 安装 Digital Ocean Discourse 一键式 Droplet
2 - 通过 SSH 按照提示完成 Discourse 安装
打开 SSH 控制台
root
(你的 root 密码)
(回车)
(你的域名).com
等等
3 - 登录 SFTP
sftp root@XXX.XXX.XX.XX
y(如果被要求确认)
yes
(你的 root 密码)
put db.sql /var/discourse/shared/standalone/db.sql
4 - 登录网站以设置管理员账户
5 - 登录 SSH - 开始流程
ssh root@XXX.XXX.XX.XX
cd /var/discourse
./launcher start app
docker exec -it app bash
sudo apt-get update
sudo apt-get upgrade
y
6 - 安装 MariaDB(作为 MySQL 的替代品)
apt-get update && apt-get install mariadb-server-10.3 libmariadbd-dev
y
7 - MySQL 数据库设置
service mysql start
mysql -u root -p
密码
create database import_db;
exit;
8 - 导入转储文件到 MySQL 数据库**
mysql -u root -p import_db < /shared/db.sql
密码
9 - GEM 文件
echo "gem 'mysql2'" >> Gemfile
echo "gem 'mysql2', require: false" >> /var/www/discourse/Gemfile
echo "gem 'php_serialize', require: false" >> /var/www/discourse/Gemfile
cd /var/www/discourse
su discourse -c 'bundle install --no-deployment --without test --without development --path vendor/bundle'
(忽略红色的文本结果)
10 - 配置安装脚本
vi /var/www/discourse/script/import_scripts/xenforo.rb
---根据需要对文本文件进行编辑,如数据库名称/密码、前缀等---
(esc)
:wq
11 - Bundle 配置
bundle config set path 'vendor/bundle'
bundle config set without 'development:test'
bundle config unset deployment
su discourse -c 'bundle install'
12 - MySQL 配置(可能可以与上一步合并完成)
mysql --version
sudo mysql -u root -p
密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
exit
13 - 运行安装脚本
su discourse -c 'bundle exec ruby script/import_scripts/xenforo.rb'