Ich habe viele Threads über die neue WAL-Standardeinstellung in ios7 SQLite/Core Data Stack gelesen.ios7 sqlite Datenbank mit WAL synchronisiert nie die Hauptdatenbankdatei
Es sah in erster Linie nach einer guten Idee aus ... Allerdings muss ich von Zeit zu Zeit eine Datenbankkopie an einen entfernten Webservice gemäß meinen Geschäftsanforderungen erstellen. Momentan speichere ich nur die SQLITE-Datei und kann die 2 anderen Dateien nicht zur Webservice-Operation hinzufügen, die ich verwende. Das bedeutet, dass mein Backup eindeutig nicht auf dem neuesten Stand ist, also ziemlich sinnlos.
Andere Leute schlagen vor, dass ich WAL mit journal_mode = DELETE (NSSQLitePragmasOption) deaktivieren sollte, was für mich eine akzeptable Problemumgehung ist. Trotzdem fühle ich mich nicht wohl dabei. Es fühlt sich an, als verpasse ich eine recht ordentliche Leistung.
Idealerweise würde ich gerne Core Data/SQLite anweisen, die SHM/WAL mit der Hauptdatendatei zu synchronisieren und dann die Sicherung durchzuführen. Gibt es einen Weg dies zu tun, ohne verrückte private oder undokumentierte APIs auszugraben?
Gibt es eine Lösung? –
Ich habe das gleiche Problem. Ich ziehe von ios 6 zu ios 7 um, ios6 scheint nur .sqlite-Datei zu haben, um Daten zu speichern. Aber ios7 hat .SM und .WAL-Datei. Ich benutze FileWrapper, um die Dateien in einer einzigen Datei zu speichern. Wenn ich in iOS7 * .SM und * .WAL nicht deaktiviere, dann kann iOS6 die in iOS7 backuped Datei nicht verwenden – JimZ
Ich ging für die einfache Option (der frühere Standardmodus). Ich habe keine gute Lösung gefunden. –