先说下这次 T0 级事故的发生过程。
youbbs 的源码是有记录发帖 ip 和回帖 ip 的,2049bbs 在10月份之前只是在前台隐藏了 ip,但是数据库中仍然在记录。10月份,我修改了程序,因此10月份后的发帖和回帖均不会记录ip。
前情回顾:
- https://2049bbs.xyz/t/1521
- https://2049bbs.xyz/t/1506
但是历史数据中的 ip 如何处理呢,如果是 MySQL 数据库,也就是一行 SQL 的事情,但是 youbbs 使用的是一种嵌入式kv数据库,这玩意儿没有 SQL 接口,我也从来都没用过嵌入式 kv 数据库。花了几天时间,看了下文档,写了个脚本,专门去除历史数据中的ip。(脚本地址 https://paste.gg/p/anonymous/89fbcf15fd9f41dcbc691a0a319edf93 )
一切顺利,我把清除ip后的数据库替换掉,并且测试网页一切正常。于是我就开开心心地出去吃大餐了。
万万没想到,忘记重新启动程序了。因此,当今天我更新程序,重新启动时,白天的所有数据写入失败……丢失了整整一天的数据!
罪过罪过……原谅一个 go 小白的无知