Tencent / MMKV

An efficient, small mobile key-value storage framework developed by WeChat. Works on Android, iOS, macOS, Windows, and POSIX.
Other
17.2k stars 1.89k forks source link

升级MMKV CRC校验失败 数据清理 #1265

Closed zhang8615050 closed 4 months ago

zhang8615050 commented 4 months ago

我认真看了下源码及wiki,发现「在 crc 校验失败,或者文件长度不对的时候,MMKV 默认会丢弃所有数据。」源码也确实这么做的,所以有两点疑问。 因为我的项目中MMKV版本还停留在V1.0.18版本,想升级下最新的版本,阅读wiki的过程中发现,再v1.1.0之后的版本中,增强了recovery模式,再CRC文件中增加了例如文件长度等信息。 如果我们从较低的版本升级,较低的版本中CRC文件中并没有这些信息,是否会校验失败触发默认的恢复策略将文件数据清理? 如果为了保证升级的兼容,在覆盖安装的场景,是否可以在检测到校验失败后,通过修改默认的回调策略为OnErrorRecover,用于恢复文件? 或则有其他好的迁移方式吗?

lingol commented 4 months ago

Just upgrade to the latest version. It's all considered and handled.