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 にいなかったため、機能しませんでした。

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

まだうまくいきません。

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> を使用してコンテナを再構築します。

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

しばらく時間がかかりそうです。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

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

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

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

その通りです!しかし、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