-- 0020_chat_message_voice down: 回滚「语音事实」列。 -- -- voice 只被 chat_messages 自己引用(无索引、无视图、无约束牵涉),因此直接删列即可。 -- 回滚后的状态是「服务端不再记得这条消息来自一条语音」:列里的来源事实与音频副本引用 -- 随列一起丢弃。 -- -- ⚠️ 音频副本本体(/uploads/documents 里的文件与 `documents` 元数据行)**不在 -- 本迁移的范围内**:删掉这一列等于一次性放掉这些副本的最后一份引用,它们的 ref_count -- 不会再被消息写路径增减,此后只能由既有 GC(保留期 + ref_count = 0)收走。这是**有意** -- 的取舍:迁移绝不代替 GC 去删用户数据(同 0015 的 down 口径)。 ALTER TABLE chat_messages DROP COLUMN voice;