Org-roam数据库windows与linux共用问题

需求描述:

Q.Q科研狗,之前一直是linux端,但是目前有个软件只能在windows端跑出结果,所以希望能够同时在windows和linux下使用org-roam,在windows端也把笔记记上,并且能够使用相同数据库。

问题描述:

windows、linux双端单独使用均无问题,尝试直接修改org-roam目录位置:

windows:(setq org-roam-directory “e:/Notes/org-roam”)
linux:(setq org-roam-directory “/run/media/document/Notes/org-roam”)

一开始linux端无法打开windows端文件,提示bytemap error,更新org-roam版本后出现,(C-x n /) org-roam-find-file file(0),找不到文件 ,查看linux端路径提示e:/Notes/org-roam…

org-roam 用 sqlite 存数据的时候把文件的绝对路径写进 org-roam.db 这个文件里了,所以会出现你说的问题……

我能想到的办法是,在每次启动的时候把 org-roam.db 重建一下,不过这样的话笔记多了后估计会严重影响启动速度……

1 个赞

提交bug,让原作者改。Emacs有API支持path中带环境变量的。

thanks,理解了发生的原因 :smile:

thanks,立刻去提交issue

ff-list-replace-env-vars 可以把包含环境变量的path转化成绝对路径。

一种解决办法是设置org-roam-db-location,在不同系统下使用不同的 .db 文件。

2 个赞

这个看起来很nice,我去尝试一下

实测过了,会出现timeout 的情况,生成数据库很慢,且无法完成… 所以仍然不是一个很好的解决方案

这些应该跟是否设置这个变量没关系吧?