アップロードされたファイルをどうにかして削除する必要もありました。一部のファイルは別のフォーラムソフトウェアからのインポートによるもので、インポートされた投稿でまだ正しく参照されていないため、クリーンアップタスクは有効にしていません。そのため、手動で削除する方法を見つける必要がありました。以下は、見た目は良くありませんが機能する方法です…
-
関連するアップロードが、現在の投稿のバージョンに存在しないことを確認します。これにより、Discourse はそれを孤立したファイルとみなし、削除時に問題を起こしません。
-
Data Explorer プラグイン または別の方法を使用して Discourse データベースをクエリし、孤立したアップロードを一覧表示し、関連するものを特定して、その
upload_idとfilenameをメモします。関連するクエリは次のとおりです。SELECT uploads.id, uploads.user_id, uploads.created_at, uploads.url, uploads.filesize FROM uploads LEFT OUTER JOIN post_uploads ON uploads.id = post_uploads.upload_id WHERE post_uploads.post_id IS NULL ORDER BY created_at DESC LIMIT 100 -
データベースまたは Rails console for Discourse を使用して、
uploadsテーブルから該当するレコードをその upload ID で削除します。ここでは Rails console を使用します。Upload.where(id: 16384).first.delete -
関連するファイル(最適化されたバージョンがあればそれらすべて、画像に適用されます)を SSH 経由でファイルシステムから削除します。ファイル拡張子の前にワイルドカードを追加して、ここにサフィックスが付く最適化されたバージョンもキャッチできるように注意してください。もちろん、
cd /path/to/discourse/shared/public/ find . -name 43adade7a4cc64426adb8232a56cb2c3b49fb7c9*.pdf -type f -delete