我已經閱讀了關於ios7 SQLite/Core Data堆棧中新WAL默認設置的許多線程。帶有WAL的ios7 sqlite數據庫從不同步主數據庫文件
它看起來像一個好主意......雖然我需要執行一個數據庫副本到一個遙遠的webservice根據我的業務需求不時。目前我只備份SQLITE文件,而我無法將其他2個文件添加到我正在使用的web服務操作中。這意味着我的備份顯然不是最新的,因此毫無意義。
其他人建議我應該使用journal_mode = DELETE(NSSQLitePragmasOption)來禁用WAL,這對我來說是一個可以接受的解決方法。不過,我對此感到不舒服。這感覺就像我錯過了一個非常不錯的性能凹凸。
理想情況下,我希望能夠告訴Core Data/SQLite將SHM/WAL同步到主數據文件,然後執行備份。有沒有辦法這樣做,而不挖出瘋狂的私人或無證API?
您有什麼解決方案嗎? – 2013-10-05 09:16:18
我遇到同樣的問題。我從ios 6移動到ios 7,ios6似乎只有.sqlite文件來存儲數據。但是ios7有.shm和.wal文件。我使用fileWrapper將文件保存到單個文件。如果在iOS7中,我不禁用* .shm和* .wal,那麼iOS6不能使用備份在iOS7中的文件。 – JimZ
我選擇了簡單選項(前一種默認模式)。我沒有找到一個好的解決方案。 –