其他部署升级到统一上传引擎后,历史头像仍以 <uid>.jpg 命名且未在 files 表 登记,直到所有者下次换头像才被清理。本脚本提供一次性迁移: 内容字节不变,以 SHA-256 哈希命名复制到 avatars/,登记 files 行 (type=avatars),更新 users.avatar,删除旧文件。 幂等:已为 64 位哈希名的用户自动跳过;无遗留文件时无操作。 已在线上库实测(2 个用户全部跳过)。
其他部署升级到统一上传引擎后,历史头像仍以 <uid>.jpg 命名且未在 files 表 登记,直到所有者下次换头像才被清理。本脚本提供一次性迁移: 内容字节不变,以 SHA-256 哈希命名复制到 avatars/,登记 files 行 (type=avatars),更新 users.avatar,删除旧文件。 幂等:已为 64 位哈希名的用户自动跳过;无遗留文件时无操作。 已在线上库实测(2 个用户全部跳过)。