我已经阅读了很多关于 ios7 SQLite / Core Data 堆栈中新的 WAL 默认设置的线程。
首先,这看起来是个好主意......虽然我需要根据我的业务需求不时将数据库复制到远程 Web 服务。目前我只备份 SQLITE 文件,不能将另外 2 个文件添加到我正在使用的 web 服务操作中。这意味着我的备份显然不是最新的,因此毫无意义。
其他人建议我应该使用 journal_mode=DELETE (NSSQLitePragmasOption) 禁用 WAL,对我来说,这是一个可以接受的解决方法。不过,我对此感到不舒服。感觉就像我错过了一个相当不错的性能提升。
理想情况下,我希望能够告诉 Core Data / SQLite 将 SHM/WAL 同步到主数据文件,然后执行备份。有没有办法在不挖掘疯狂的私有或无证 API 的情况下做到这一点?