アップグレードスクリプトは空き容量をチェックし、安全である場合にのみ処理を進めます。
ディスク容量が critically( critically 重要)になる可能性のあるプロセスには2つのステップがあります。もし空き容量チェックをバイパスした場合、ここでトラブルに直面する可能性があります:
- pg_dump を実行して旧データベースからデータを抽出するとき(この時点で DB ストレージの2倍が必要)。
- pg_restore を実行してデータを新データベースに挿入するとき(この時点で DB ストレージの3倍が必要)。
この状態から回復するには、/shared/postgres_dump と /shared/postgres_data_new を削除する必要があります。
なお、アップグレード終了時に一時的な pg_dump ファイルは削除されますが、万が一に備えてアップグレード前の DB データは /shared/postgres_data_old に保持されます。すべてが正常に動作していることを確認できたら、ディスク容量を確保するためにそのディレクトリを削除することになるでしょう。
PG15 サイトで Discourse のバックアップを取得し、PG18 サイトにリストアするテストを行いました。私の環境では機能しましたが、これは公式にサポートされている方法ではありません。まず本番環境ではない環境で十分にテストし、ロールバックの手段が確保されていることを確認してください!
アップグレードスクリプトで使用されるプロセスを研究することをお勧めします。特別なストレージ要件がある場合、それをあなたのニーズに合わせて調整できるはずです。繰り返しますが、まずはテストしてください:
はい、これはすでに discourse_docker に実装されています。main ブランチを pull するか、./launcher rebuild app を実行すれば適用されます。
アップグレードを延期したい場合は、discourse_docker を main ブランチから切り離すことで 偶発的なアップグレードを防ぐことができます。