Logseq DB 版把图谱内容及配置放进 db.sqlite,附件仍单独存放。两台电脑即使改的是不同笔记,除了附件以外,也很可能分别产生一个不同版本的数据库。网盘能传输数据库文件,却未必(几乎肯定不会)懂得合并里面的节点。直接挑一个「较新的文件」覆盖过去,另一台设备的修改可能就丢了。我们知道,数据库本身有事务保护,不容易损坏。但是粗暴的文件级别同步就很难说了。我几乎不会再考虑普通基于文件的同步方式了。过去能逐篇打开、逐篇修复的内容,现在更依赖专门机制。如果出了问题,用户很难直接处理,也许有专门的数据库修复机制,或者就应该多做备份。如果撇开传统的文件备份,Logseq DB 也提供了官方的 Sync 服务,类似 Obsidian 的官方 Sync,另外,Logseq DB 也支持自托管同步。用户还是有些选择权的。可是,选择一个熟悉的网盘,与部署维护一套同步服务,对普通用户来说是不同的门槛。如果你执意要使用 DB 版的话,官方服务可能因此成为许多人最现实的选择。
Markdown Mirror
现在的 2.0.2 桌面版还提供 Markdown Mirror,把数据库内容反向生成出 Markdown 文件。但它是单向输出,修改镜像文件不会回写到数据库,也不能把它当成保证完整恢复图谱的备份。作为一种备份手段,这有一些价值,但是不大。我们可以这样理解,Markdown Mirror 更像是一种审计,Logseq 能产生出凭证,让你放心 DB 里面有这些内容,由于直接访问 DB 对于一般人来说门槛太高,所以生成 Markdown 文本这种大家能看懂的文件作为凭证,而且查看可以独立于 Logseq 本身,使用任何文本编辑器即可。
最后
我的心情有点复杂。Logseq DB 版应该是在性能上做出了极大进化,原来那种基于分散文件存储的方式,效率肯定是低下的,巨大数量节点的解析一定是痛苦的,现在这个问题算是解决了。但是,数据的主动权、同步的便利性、基于纯文本的透明性也都失去了。其实 Logseq 应该参考 Obsidian,MD 文件仍旧保持,同时在不同设备上建立自己本地的数据库索引,这样可以兼顾数据同步和访问效率。准备迁移的老用户,一定要先用一个副本尝试 DB 版,把同步和恢复的机制弄清楚,再决定是否迁移主库。测试版阶段尤其应该留住原始 Markdown 文件。如果管理自己数据的能力,越来越依赖专门服务和技术知识,那么即使数据库还在硬盘上,本地优先原来吸引我的意义,也已经打了折扣。希望有个开源且兼顾文件和 DB 版本的 Logseq 出现,在不久的将来,也许 AI 能为我们带来一个。