phpBB3インポートスクリプトの機能強化リクエスト

これも試しました:

> root@vps116136-import:/var/www/discourse/config# su discourse -c “bundle exec rake db:drop”
> exec: line 1: “bundle: command not found

申し訳ありません、これらのチェックを予測すべきでした。

この環境変数を使って drop コマンドを実行してみてください。

cd /var/discourse
./launcher enter <your-container-name>

su discourse
DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:drop

これは、プロジェクトの Gemfile があるディレクトリ、この場合は /var/www/discourse にいなかったため、機能しませんでした。

ちょっとした注意点ですが、最も簡単な方法は、フォーラムを最初に起動した時点のバックアップを取っておき、再度インポートを試みる前にそれを復元することでしたが、それがないと仮定すると、このソフトリセットしか残されていませんでした。

「いいね!」 2

まだうまくいきません。

root@vps116136-import:/var/www/discourse# su discourse
discourse@vps116136-import:/var/www/discourse$ DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:drop
PG::InsufficientPrivilege: ERROR:  must be owner of database discourse
Couldn’t drop database ‘discourse’
rake aborted!
ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: ERROR:  must be owner of database discourse (ActiveRecord::StatementInvalid)

…

今度はrootとして試します…

「いいね!」 1

いいえ。

root@vps116136-import:/var/www/discourse# DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:drop
fatal: ‘/var/www/discourse’ で疑わしい所有権がリポジトリで検出されました
このディレクトリの例外を追加するには、次を呼び出します。

    git config --global --add safe.directory /var/www/discourse

rake aborted!

最初の指示は忘れてください :smiling_face_with_tear:

  1. コンテナから最新のバックアップを docker cp でコピーします。バックアップは /shared/backups/default の中にあります。
  2. インストールディレクトリ(./launcher を実行する場所)から共有フォルダを削除します: rm -rf /var/discourse/shared
  3. ./launcher rebuild <container-name> を使用してコンテナを再構築します。

これで解決するはずですが、バックアップを失わないように注意してください。誤ってバックアップを削除されるのを避けるために提案を控えていましたが、これが唯一の進むべき道のように思われます。

「いいね!」 1

しばらく時間がかかりそうです。tar.gz は 15GB です。

「いいね!」 1

実際、かかるだろう…

200

開始してから.5GBになりました。

「いいね!」 1

完了しました。

完了しました。

完了しました。インポートスクリプトを実行する準備ができました。しかし…

/var/discourse/shared/standalone/import
├── data
├── mysql
└── settings.yml

これは吹っ飛ばしましたね :index_pointing_up:

「いいね!」 1

はい。

共有フォルダー内にMySQLコンテナ用のボリュームを作成したと仮定します。その場合、残念ながらコンテナを再起動し、データベースを再度復元する必要があります。
添付ファイルはコピーするだけです。
settings.yml の設定も再設定するのはそれほど難しくないはずです。

コンテナの再起動が何を意味するのかよくわかりません。最初に、これらの手順に従ってphpbb_mysql.sqlをmysqlディレクトリに配置しました。これ以外に何かする必要があるのでしょうか?

添付ファイルはコピーするだけです。

ええ。ただし、phpBBの/filesディレクトリに45GBのデータがあるため、tar.gzファイルは15GBになります。ご存知のように、私は22年間ボードを運営しています!ですから、はい、それらをコピーし直します。しかし、おそらく明日にならないと、これを再開しないでしょう。

「いいね!」 1

ええ、それがコミュニティ移行の性質です。良いアドバイスは、より小さなサンプルから始めて、プロセスを習得してから完全なインポートを実行することです。

ツールをより柔軟にし、プロセスを冗長でなくすための取り組みが進行中ですが、これは非常に複雑な問題です。

明日の実行がうまくいきますように。

「いいね!」 1

その通りです!しかし、phpBBはサンプルサイズを減らすことを容易にしてくれません。持っているもので行き詰まっているようなものです。それでも、これはテスト環境であり、何も取り戻せないわけではありません。

ありがとう!ここでまた報告します。ちなみに、今や私はdocker cpの専門家なので :zany_face: 、このようなことが発生した場合に、phpBBのpost_idを出力するようにRubyスクリプトを変更するのは大変なことでしょうか?

8000 / 24451 ( 32.7%) [677 items/min] W, [2026-01-13T02:50:22.466363 #25640] WARN – : Bad date/time value “0000:00:00 00:00:00”: mon out of range
W, [2026-01-13T02:50:22.466500 #25640] WARN – : Bad date/time value “0000:00:00 00:00:00”: mon out of range
W, [2026-01-13T02:50:22.466600 #25640] WARN – : Bad date/time value “0000:00:00 00:00:00”: mon out of range

「いいね!」 1

まだここにいます!インポートをやり直す前にいくつかのことを整理し、いくつかの問題に取り組んでいます。次の問題に取り組む前に、クロードが相手をしてくれるのを待っています。でも、戻ってきます…

disperse-lesley-nielsen

「いいね!」 1

OK!Claudeの助けなしで前回のスナップを整理し、インポートを開始しました。またしても問題が発生しました。

phpBB3 インポートを開始しています…

/var/www/discourse/script/import_scripts/phpbb3/support/settings.rb:49:in initialize': nil に対する undefined method ’ (NoMethodError)

  @site_name = import_settings["site_name"]
                              ^^^^^^^^^^^^^
    from /var/www/discourse/script/import_scripts/phpbb3/support/settings.rb:11:in `new'
    from /var/www/discourse/script/import_scripts/phpbb3/support/settings.rb:11:in `load'
    from script/import_scripts/phpbb3.rb:20:in `<module:PhpBB3>'
    from script/import_scripts/phpbb3.rb:16:in `<module:ImportScripts>'
    from script/import_scripts/phpbb3.rb:15:in `<main>'
「いいね!」 1

NVM、私のミスです。settings.ymlファイルが壊れています。申し訳ありませんが、これに戻れるのはおそらく明日になります。

「いいね!」 2

pryデバッグを試すことができます。ブレークポイントをコードに追加すると、それが実行されたときにpryが開きます。これにより、データを調べるための対話型のCLIを取得できます。または、単にprocess_postメソッドにputs row[:post_id]を追加すると、警告が出たときに最後のIDを確認できます。

「いいね!」 3

ええ、それです!あなたにとっては簡単ですが、私にとってはそうではありませんね :zany_face: 私はハックを開発する際に、PHP のサーバーサイドデバッグのために Xdebug を徹底的に使用しましたが、私は人生の「老犬と新しい芸」の段階にいます。もし、具体的な手順を教えていただければ、その編集を喜んで行います。しかし、私は Ruby をハックできるふりはしません。少なくとも今のところは…

追伸:28分後にクロードが面会してくれるので、現在の障害を乗り越えた後、インポートを開始したいと思っています。

OK、修正された.rbファイルでインポートスクリプトを実行しています。朝に(あくび)ご報告します。

「いいね!」 2

おっと。たくさんの画像付きの投稿で次のようなものを見つけました。

MBCを取り付ける前に、オリジナルのマスターのプッシュロッドグロメットを取り付ける必要があります。キットに付属のグロメットは小さすぎます。PSユニットのエアプレスタンクを取り外すと、新しいブレーキラインを配置するためのアクセスが容易になります。

~~[attachment=13]51.jpg[/attachment][attachment=12]52.jpg[/attachment][attachment=11]53.jpg[/attachment][attachment=10]54.jpg[/attachment][attachment=9]55.jpg[/attachment][attachment=8]56.jpg[/attachment][attachment=7]57.jpg[/attachment][attachment=6]58.jpg[/attachment][attachment=5]59.jpg[/attachment][attachment=4]60.jpg[/attachment][attachment=3]61.jpg[/attachment][attachment=2]62.jpg[/attachment][attachment=1]63.jpg[/attachment][attachment=0]~~64.jpg[/attachment]

phpBBでのその投稿の見え方は次のとおりです。

何らかの方法でテスト環境用の Docker インスタンスを壊してしまいました。再作成中です。

インポートスクリプトを変更する代わりに、スナップショットを取得し、attach_ids、ファイル名、コメントを抽出して画像へのキャプションとして追加しようとするスクリプト(Claude の少しの助けを借りて)で後処理を行うつもりです。あまり楽観視はしていませんが、結果が出たら皆さんに知らせます。

不正な日時に関する警告については、Claude からの以下の情報があります。

その警告は、画像ファイル(添付ファイル)から EXIF データを読み取る EXIFR gem から来ています。投稿日時とは全く関係なく、画像ファイル自体のメタデータに関するものです。

添付ファイルを処理する際に、EXIF の日時メタデータが無効な場合に警告が表示されます。これは見た目上の問題であり、インポートには影響しません。

これは @pfaffman さんが考えていた通りですが、警告のトリガーが分かってよかったです。

「いいね!」 2