Przeczytałem wiele wątków na temat nowego domyślnego ustawienia WAL w pakiecie SQLite/rdzeń danych ios7.Baza danych ios7 sqlite z WAL nigdy nie synchronizuje głównego pliku bazy danych
Przede wszystkim wydawało mi się to dobrym pomysłem ... Chociaż od czasu do czasu muszę wykonywać kopię bazy danych w odległym serwisie internetowym zgodnie z moimi potrzebami biznesowymi. W tej chwili tylko wykonuję kopię zapasową pliku SQLITE i nie mogę dodać 2 innych plików do operacji usługi sieciowej, której używam. Oznacza to, że moje kopie zapasowe są wyraźnie nieaktualne, a więc bezsensowne.
Inne osoby sugerują, że powinienem wyłączyć WAL przy użyciu metody journal_mode = DELETE Mimo to nie czuję się z tym dobrze. Czuję, że tracę całkiem przyzwoity występ.
Idealnie chciałbym móc powiedzieć Core Data/SQLite, aby zsynchronizować SHM/WAL z głównym plikiem danych, a następnie wykonać kopię zapasową. Czy istnieje sposób, aby to zrobić bez wydobywania szalonych prywatnych lub nieudokumentowanych API?
Masz jakieś rozwiązanie? –
Mam ten sam problem. Przechodzę z ios 6 na ios 7, ios6 wydaje się mieć tylko plik .sqlite do przechowywania danych. Ale ios7 ma plik .shm i .wal. Używam fileWrapper do zapisywania plików w jednym pliku. Jeśli w iOS7 nie wyłączam * .shm i * .wal, wtedy iOS6 nie może użyć pliku zarchiwizowanego w iOS7 – JimZ
Poszedłem na łatwą opcję (poprzedni tryb domyślny). Nie znalazłem dobrego rozwiązania. –