RSS 数据库初始化问题
在有些极端情况下,RSS 初始化会失败。
出现这种情况,往往和文件系统相关。
请检查以下内容:
- 文件是否被加密,或者所处文件夹乃至整个硬盘是否被加密。
如果是被第三方软件加密,应用很可能因为无法访问数据库文件而导致初始化失败。 - 数据库文件(rssStore.db / rssCache.db)是否被其它程序占用。 如果有程序一直占用数据库文件,这也可能导致访问失败。
初始化失败的内在原因
RSS 的相关数据存储在 sqlite 单文件中,你的文章收藏会被放在书库目录的 rssStore.db
数据库中,各个服务的缓存数据会放在 RssCache
目录下各个服务目录里的 rssCache.db
数据库中。
在第一次启动应用时,如果对应服务的数据库文件不存在,应用会尝试将一个初始数据库放到对应目录中。
这是一次文件复制操作,如果此时文件夹因为各种各样的原因无法访问或写入,就会导致数据库初始化失败。
如果第一次初始化成功,后续将会直接读取这个数据库文件。
如果因为一些原因,数据库被外部程序修改,或者本身发生损坏,则同样会导致数据库初始化失败。
怎么解决?
如果是文件系统的问题,比如加密,那就尝试解除对该文件的加密,或者将整个书库目录移动到未加密的地方,之后重新打开书库。
如果是数据库本身的问题,这个就比较棘手了。
- 请先将 rssStore.db 和 RssCache 目录进行备份。
- 关闭应用后,删除书库目录内的 rssStore.db 以及无法初始化的服务目录下的 rssCache.db 文件
- 重启应用。
重启后,应用会重新初始化整个 RSS 数据库结构。
这可能会导致原来的缓存数据丢失,但是你可以通过 DB Broswer
一类的可以解析 Sqlite 的软件打开你备份的数据库,重新获取这部分资料,并妥善保存。