壊れた添付ファイルやアップロードは、投稿の生テキストでは [{ファイル名}|attachment](/uploads/default/original/2X/6/{SHA1 ハッシュ + 拡張子}) のように表示されます。これが href="/uploads/default/original/2X/6/{SHA1 ハッシュ + 拡張子}" として処理されるため、画像は表示されますが、ファイル添付は機能しなくなります。
その後、正常に動作する添付ファイルは [{ファイル名}|attachment](upload://{SHA1 を Base62 変換した値 + 拡張子}) のように表示され、href="/uploads/short-url/{SHA1 を Base62 変換した値 + 拡張子}" として処理されます。
私は問題が発生した期間のすべての投稿をスキャンし、古いアップロード URL を新しい形式に置換する小さな Ruby コードを作成しました。その際、Upload モデルの base62_sha1 関数を使用して、SHA1 ハッシュを Discourse のショート URL が期待するファイル名形式に変換しました。
これにより添付ファイルが機能するようになりました。その後、修正を確認するために再度リベイクを実行しましたが、問題なく動作しているようです。この問題の原因は Post.raw にあり、Upload には関係なかったようです。