如果使用预写日志记录的 SQLite 数据库被未检查点的事务中断(由于电源故障或其他原因),然后在缺少临时 -wal 文件的情况下重新打开,数据库是否会干净地打开到上一个检查点时的状态,还是会以某种方式损坏?
我们正在尝试让 SQLite 与 iCloud 一起工作(是的,我们知道你不应该这样做,但我们还制作了一个 Windows 和一个 Android 应用程序,并且需要一个跨平台的数据库解决方案),我们认为 WAL 提供避免维护我们数据库的两个副本的潜在方法 - 我们将 -wal 文件保存在 iCloud 之外,但将主数据库存储在其中,从而避免 iCloud 备份回滚日志(或备份数据库中途-没有这些日志的交易)。