FluxBB データベースを Discourse にインポートするための スクリプト を作成しました。以下では、インポート手順をステップバイステップで解説します。
この移行スクリプトは、現在の最新バージョンである FluxBB v1.5.10 でテスト済みです。
どのデータをインポートできますか?
- ユーザー(プロフィールや署名を含む)
- グループ
- カテゴリ
権限はインポートされず、すべてのカテゴリは公開設定になります。正しい権限はインポート後に手動で設定する必要があります。 - トピック(固定/ピン留め状態を含む)
- 投稿
- 停止されたユーザー
移行を開始する前に、マシン(または仮想マシン内)で開発環境をセットアップしてください。開発用のインストールガイドについては、OS X または Ubuntu を参照してください。
Discourse には Ruby 3.4 以上が必要です。Ruby のバージョンを確認するには、以下のコマンドを入力してください。
ruby -v
MySQL
次に、古い FluxBB データベースに接続するために Ruby 用の mysql2 gem が必要です。以下のコマンドを実行して、libmysqlclient-dev 依存関係と mysql2 gem をインストールします。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libmysqlclient-dev
gem install mysql2
(オプション)MySQL ダンプを localhost にインポート
MySQL クライアントをインストールし、MySQL ダンプファイル(.sql)を開発マシンにインポートするには、以下の手順に従ってください。
sudo apt-get install mysql-server mysql-client
MySQL ユーザー、権限、テーブルを作成します。
mysql -u root -p mysql
mysql> CREATE USER 'fluxbb'@'localhost' IDENTIFIED BY 'fluxbb';
Query OK, 0 rows affected (0.00 sec)
.
mysql> CREATE DATABASE fluxbb;
Query OK, 1 row affected (0.01 sec)
.
mysql> GRANT ALL PRIVILEGES ON fluxbb.* TO 'fluxbb'@'localhost';
Query OK, 0 rows affected (0.00 sec)
.
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
.
mysql> exit
FluxBB データベースのダンプファイルをインポートします。
mysql -u fluxbb -p fluxbb < myfluxbb.sql
BBCode から Markdown へ
インポートスクリプトは BBCode から Markdown への変換を自動的に処理します。これに追加の gem は不要です。
mysql2 をインストールした後、Discourse のインストールパスに移動して Gemfile を編集します。
cd ~/discourse
sudo nano Gemfile
次に、ファイルの末尾に以下の行を追加して mysql2 gem を Discourse に追加します。
gem 'mysql2'
インポートスクリプトを実行する前に、以下の行をシェルのプロンプトに 1 行ずつ貼り付けてください(値の編集には矢印キーを使用します)。
export FLUXBB_HOST="localhost"
export FLUXBB_DB="fluxbb"
export FLUXBB_USER="root"
export FLUXBB_PW=""
export FLUXBB_PREFIX=""
これでインポートスクリプトを実行する準備が整いました。以下のコマンドを実行して移行を開始します。
RAILS_ENV=production bundle exec ruby script/import_scripts/fluxbb.rb
インポートが完了するまで待ちます。処理が極端に遅くなった場合は、スクリプトを再起動してください。
すべて完了したらおめでとうございます! データベースが FluxBB から Discourse へ正常に移行されました ![]()
Discourse インスタンスを起動します。
bundle exec rails server
Sidekiq を起動して処理を完了させます。
bundle exec sidekiq -q critical,4 -q default,2 -q low
フォーラムのサイズによっては、この処理に時間がかかる場合があります。進捗状況は http://localhost:3000/sidekiq で監視できます。
最後に、管理ページ /admin/backups からバックアップを取得し、ライブの Discourse ウェブサイトにインポートしてください。