我在只读媒体上有一个WAL数据库(即db.sqlite
,db.sqlite-wal
和db.sqlite-shm
)。
我知道我不能像那样只读取它,因为根据文档,"even ordinary reads in WAL mode require recovery-like operations"。
但我可以告诉sqlite将打开到内存中,并从内存中的只读WAL文件进行恢复吗?
这样我最终会得到一个恢复且完全可操作的内存数据库,其内容与磁盘上的文件相同。
答案 0 :(得分:1)
将文件复制到RAM磁盘(安装tmpfs
的任何地方)。
可以通过遵循recommendation
来避免这种情况在传输到只读媒体之前,应始终将SQLite数据库转换为PRAGMA journal_mode = DELETE。