Access denied, Please sign in and make sure you have proper permission.
最近突然在想,对于那些支持离线使用的 app,是如何做同步方案的呢,特别是支持多端的,很容易冲突啊。
元思笔记在开发的桌面端也有这个问题,尤其是选择用 sqlite 来保存数据的话。一旦多端断网之后分叉,必然会产生冲突。
目前的想法
- 让用户每次手动选择要还原的备份。如果冲突了就选一个,冲突的部分自己手动备份
- 支持外部文件夹存放数据,通过坚果云、dropbox 之类的来自动同步
- 上线官方服务器,引入账号机制,通过云端服务器来同步最新版本
如果是存成 git 这种倒还好一点,但是很多通用的比如 webdav 协议有配额限制,不适合同步时要读写大量文件的情况。
如果大家有其他想法,也欢迎一起来分享。
为何我们不可以在数据恢复的时候去合并设备间的变更呢? 在从 WebDAV 中恢复备份时,不是直接粗暴的进行数据库文件的替换,而是先去对比两个版本数据库中出现差异的数据记录,之后对这部分的数据做恢复。