Migrate a XenForo forum to Discourse

100万投稿規模のボードを、Digital Ocean の droplet 上で Xenforo から Discourse へ移行し、無事に完了しました。以下に、コマンドごとの私の手順をまとめます(以前別の vBulletin ボードで行った手順と非常に似ています)。

インポートには最低 4 vCPU / 8GB のリソースを推奨します。

このスレッドで移行を乗り越えるのを手伝ってくれた皆様に感謝します。読むことと読み返すことだけで、ここ数日は本当に楽しかったです。

1 - Digital Ocean の Discourse 1 クリック droplet のインストール

2 - プロンプトに従い、SSH 経由で Discourse のインストールを完了

Open SSH console
root
(yourrootpassword)
(enter)
(yourdomain).com
など

3 - SFTP にログイン

sftp root@XXX.XXX.XX.XX
y (確認を求められた場合)
yes
(yourrootpassword)
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
password
create database import_db;
exit;

8 - ダンプのインポート → MySQL データベースへの転送

mysql -u root -p import_db < /shared/db.sql
password

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
password
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
exit

13 - インストールスクリプトの実行

su discourse -c 'bundle exec ruby script/import_scripts/xenforo.rb'
「いいね!」 4