Re: phpBB3フォーラムをDiscourseに移行する

こんにちは。

phpBB3.3.3はサポートされていますか、それとも厳密には3.3.0のみですか? 1.5の手順を実行するとき:

/var/discourse/launcher enter import

phpBB3フォーラムをDiscourseに移行 - ドキュメント / sysadmin - Discourse Meta から
2回試しましたが、次の応答が返ってきます。

x86_64 arch detected.
Error response from daemon: No such container: import

次を使用すると:
/var/discourse/launcher enter import.yml

応答は次のとおりです。

x86_64 arch detected.
ERROR: containers/import.yml.yml does not exist or is not readable.
Available configs ( app, import )

これは機能する可能性がありますか?

よろしくお願いします。

こんにちは、ようこそ! :wave:

最初からガイドに従ったと仮定しますが、/var/discourse/containers/import.yml ファイルは実際に存在しますか?

設定ファイルが削除されたようです。 :thinking:

「いいね!」 1

はい、上記のメッセージのように、containers ディレクトリに app.ymlimport.yml の両方が存在します。

理解したところによると、以前の手順に従い、app.ymlの隣にimport.ymlを作成/編集し、importコンテナを再構築した後、コンテナにさえ入れなくなってしまったということですね。それは確かに奇妙です!

このコマンドは何を返しますか? ls -l /var/discourse/containers

変更はありません。app.ymlとimport.yml(それにapp.ymlの「bak」ファイルです)。

Lightsail 1GB(初期は940MB、Ubuntuアップデート後は「921MB」になります)にこれをインストールしようとしているため、「問題」がある可能性があります。公式のインストールを使用しましたが、インストールされたのは3.3.* betaのようなものでした(Wikiでは3.2が最新の安定バージョンとして表示されています)。インストールには1時間15分~1時間20分かかり、4GBのスワップを使用します。「launcher rebuild import」には約2時間かかります。
メモリ不足により、何かが誤って終了した可能性がありますか?

ちなみに、2GBセットアップからのバックアップファイルは1GBセットアップで読み取れますか?

成功しましたか? 再構築後、コンテナは起動されるはずです。
起動していないコンテナには入れません(./launcher start import

その可能性が高いです。メモリ不足/スワップ不足と再構築の失敗に関するトピックがいくつかあります。通常はRAM/スワップを増やすしかありません。

私は専門家ではありませんが、誰かがより良い洞察を提供してくれることを願っています。

「いいね!」 1

RAMが問題のようです。Lightsail 2GB/2GBでは、クリーンインストールは約3.5〜4倍速く、インポートコンテナの再構築は約10倍(またはそれ以上)速くなりました。
それでも、インポートスクリプトがphpBB 3.3.3で動作しないのではないかと心配です。いずれにせよ、2回試しましたが、結果は同じでした。インポートされたのは、約10のカテゴリのうち1つのカテゴリ名から1つの単語だけで、空の「カテゴリ」としてインポートされました。MySQLのテキストダンプは2.66MBとかなり小さいです。すべてのテーブルプレフィックスは要求どおりです。画像やスマイリーなどはありません。
全体として、フォーラム、フォーラムカテゴリ、投稿はありませんでしたが、すべての(数百の)ユーザーとその統計情報は正しくインポートされました。

phpBB 3.3.3が使用されているMySQLのバージョンを変更したアップデートのようですが、これはダンプファイルなので、結局は関係ないはずです。
他に確認できることはありますか?

RAMは最低でも4GBは必要です。

エラーはありますか?スクリプトが1つのカテゴリを取得した後に終了したように聞こえますが?

「いいね!」 1

2.6MBのテキストファイルを読み込み/解析するために4GBのRAMが必要だということですか?あなたはDiscourseの開発者ですか?そのダンプを読み込み(Discourseが使用するすべてのデータを抽出)、他のものに保存するためのバイナリ実行ファイルは、この単純なアクションのためにMariaDB全体を含めることを気にしない場合、バッファを100KBとして約200KBになるはずです。

RAMの問題ではないと思います。手順は高速で、インポートされたテーブルのインポート進捗が表示されました。「終了」しませんでした。ユーザーテーブルは、トピックなどの後に、ダンプの最後にあります。

もう一度やりたいと思い、そのユーザーテーブルを一番上にコピー/ペーストして、上記のマニュアル/ページと同じ手順(phpBBではなくphpMyAdminで作成されたダンプでも)を実行しようとしましたが、Discourseは、接続データが追加されていないにもかかわらず、リモート接続を試みようとして手順を開始することを拒否します。

インポートコンテナを再構築しましたが、最初に何かを削除する必要があるのでしょうか?

私は、ディスコースのサポートで生計を立てており、数えきれないほどの移行を行ってきましたが、おそらく100回以上でしょう。2GBのRAMでも、トピックやユーザーが数千程度であれば機能する可能性が高いですが、ごく短期間しか必要としないのであれば、より多くのRAMは高価ではなく、害にもなりません。それが問題ではないという意見に同意します。

スクリプトを実行した際、カテゴリ、ユーザー、トピック、投稿をカウントしましたか?

スクリプトはインポートされたデータをスキップし、カスタムフィールドデータを作成して将来のインポートをスキップするため、再度実行するにはディスコースのデータベースをワイプする必要があります。何もインポートされなかったとのことなので、それが不可欠かどうかは不明です。インポートされたのに何らかの理由で見つけられないか、データが見つからなかったために失敗したかのどちらかだと思われます。どちらの場合も、データベースをワイプする必要はないはずです。

「何もインポートされなかったとおっしゃるので」

正確にはそうではありません。
「(数百人の)全ユーザーが統計情報とともに正しくインポートされました」

コンテナを再度再構築してみました。設定は同じです。何も変更していません。そして、以下のステップの後:
import_phpbb3.sh # Dockerコンテナ内
スクリプトは次のように表示されます。
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mysql2-0.5.6/lib/mysql2/client.rb:97:in `connect’: Unknown database ‘phpbb’ (Mysql2::Error)

まだ削除すべき一時ファイルが残っているのでしょうか?

最終的にphpMyAdminのダンプを使用しました。(インポート) settings.yml のマッピングセクションの作成方法について、例や詳細な仕様はありますか?
私の php_forums テーブルは以下のようになっています。

forum_id, MEDIUMINT(8) ...	parent_id, MEDIUMINT(8) ...
3	0
8	3
7	3
9	3
10	3
11	0
12	11
13	11
14	11
15	11
17	3

どの ID を使用しても、「new_categories: 」セクションを指定しても、インポートコンテナによって生成されるメッセージは問題ないようです。
new categories を作成中
11 / 11 (100.0%) [2803 items/min] n]
categories を作成中
11 / 11 (100.0%) [2704 items/min]

しかし、作成されるのは、phpBB の parent_id 0 の「フォーラム」だった 2 つのメインカテゴリと、それぞれのカテゴリ内に 1 つの空のサブカテゴリです。投稿はすべてインポートされますが、すべて「孤立」しています。

phpbb3のバージョンに何か変更があったようですね。

実際、自分のエラーを修正する上で一歩前進しました。設定ファイル settings.yml に C/C++ スタイルのコメントを、行末に配置しただけです。これにより、サブフォーラムが「処理」されなかったようです(エラーは表示されませんでしたが)。

カテゴリとサブカテゴリを「新規」として追加し、古いIDをマッピングしました。
それでも、どのカテゴリにも属さない投稿がすべて残っています。そのようなトピックは1つのPostgresテーブルに保存されていますか?それらを削除するにはどうすればよいですか?

phpbb_mysql.sql にいくつかの修正を加え、少なくともスクリプトがすべての元のカテゴリを作成できるようにしましたが、それだけでは十分ではありません。
トピック/投稿を処理する際に、次のような長いリストが表示されます。

親投稿 [some id] が存在しません。[some id] をスキップします。

そして、もちろん、投稿はインポートされていません。
デフォルトのスクリプトは phpBB 3.3.3 テーブルで動作しないことを誰か確認していただけますか?

最終的に、カテゴリを新規として定義したり、settings.yml ファイルですべてのマッピングを行ったりすることなく、phpBB3.3.3 ダンプファイルを使用することができました。

元の phpBB_mysql.sql ダンプファイルでは、マイグレーション スクリプトはカテゴリのロード段階で停止し、「空のカテゴリ本文」に関するエラーが表示されます。
これは、メインのカテゴリ(親カテゴリを持たないカテゴリ)の「phpbb_forums」テーブルの「forum_desc」フィールドで発生します。
最初のカテゴリを部分的にインポートした後、残りは明らかに混乱します。
新規インストールを使用して、上記のテーブルフィールドにテキストを入力すると、この問題は解決するようです。