Migrate a Phorum forum to Discourse

スクリプトをありがとうございます!

しかし、マニュアルはかなり粗く、不明瞭だと感じました。例えば、Xenforo移行ガイドなどを参照して、ここで何を提案しているのかを実際に理解する必要がありました。いくつか不足している手順を追加させてください。

  • Discourse を起動して実行する
  • 元の Phorum から mysqldump を作成する - すべてクリア、すべて良好。
  • データベースダンプを Discourse フォルダにコピーする docker cp/path/to/backup/phorum_db.sql.gz app:/shared/phorum_db.sql.gz (標準コンテナ名として app を想定)

ここで不足している部分です。

  • 実際に Discourse Docker コンテナに入り、そこに MySQL をインストールします。
docker exec -it app bash
apt-get update && apt-get upgrade
# pv は進行状況を表示するために便利ですが、lsb-release は何かに必要です
apt-get install -y lsb-release pv mariadb-server mariadb-client libmariadb-dev
service mariadb start

MySQL のインストールは少しトリッキーですが、MariaDB で十分機能するはずです。

次にデータベースを作成します: mysqlCREATE database phorum

次にバックアップからデータを投入します: pv phorum_db.sql.gz | gunzip | mysql phorum (ダンプが生の SQL の場合は gunzip は不要です)。

Ruby に MySQL サポートを追加します。

cd /var/www/discourse/
echo "gem 'mysql2'" >>Gemfile
bundle config unset deployment
bundle install --no-deployment

移行スクリプトでデータを変更します (データベース認証情報、プレフィックス、パーマリンク):

nano /var/www/discourse/script/import_scripts/phorum.rb

そして元の投稿ガイドに戻ると、すべて順調です。

クリーンな Discourse インスタンスでインポータを実行します。

git config --global --add safe.directory /var/www/discourse
bundle exec ruby script/import_scripts/phorum.rb

もし Discourse データベースが実際にはクリーンでない場合は、事前に bundle exec rake db:drop db:create db:migrate でクリーンアップすることをお勧めします。

“PG::ConnectionBad: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "discourse" (PG::ConnectionBad)” で失敗した場合:

  1. ‘Peer authentication failed for user “discourse”’ というエラーが発生した場合:
  2. ファイル /etc/postgresql/13/main/pg_hba.conf を編集します。
  3. すべての ‘peer’ を ‘trust’ に変更してファイルを保存します。
  4. postgresql サーバーをリロードします: /etc/init.d/postgresql reload (または psql -U postgres -c "SELECT pg_reload_conf();" かもしれませんが、これは時々失敗しました)。

最初にユーザー移行が実行されます。これは比較的遅い可能性があります (~1.2k ユーザー/分、スクリプト出力による。私は 100k ユーザーを持っていましたので…)。次にカテゴリが作成され、メッセージとトピックの移行が開始されます (同じ速度、~1.2k/分)。しかし、この時点ですでにウェブサイトにアクセスして、どのように見えるかを確認できます。

Phorum のような古いエンジンにしては、予想よりもはるかにスムーズに進んでいるようです。プライベートメッセージ (PM) の移行はないようですが、少なくとも私にとっては問題にはならないでしょう。

スクリプトと労力に改めて感謝します!