2013-10-24 9 views

Antwort

18

Führen Sie eine checkpoint aus, d. H. Führen Sie PRAGMA wal_checkpoint aus.

+0

Beim Terminal Run 'sqlite3 db.sqlite' vergewissern Sie sich, dass das Verzeichnis' -wal' Datei enthält, führen Sie 'PRAGMA wal_checkpoint' aus und beenden Sie die db mit' ctrl + d' –

22

in der Befehlszeile, dies zu tun:

  1. sqlite3 MyDatabase.sqlite
  2. VACUUM;
  3. STRG + D, um die SQLite-Konsole zu beenden.

Fertig!

Die -wal-Datei sollte jetzt eine Größe von 0 haben und alles sollte in Ihrer Hauptdatenbankdatei sein.

+0

In diesem Thread werden zwei Lösungen vorgeschlagen: (1) PRAGMA wal_checkpoint (2) VACUUM und Ausgang. Ich arbeite auch mit Core Data. Meine Haupt-SQLite-Datei war 46 MB und meine -wal-Datei war eine satte 1,2 GB. Meine Ergebnisse: PRAGMA wal_checkpoint oder PRAGMA wal_checkpoint (1) haben keine Wirkung. VACUUM reduzierte die Größe der -wal-Datei von 1,2 GB auf 40,8 MB und reduzierte den Haupt-SQLite von 46 auf 40,5 MB. Wiederholte Ausführungen beider Befehle führten nicht zu weiteren Reduzierungen. Beim Beenden der sqlite3-Konsole wurde die Datei -wal jedoch auf 0 reduziert, wie Johannes sagte. –

+0

@JerryKrinock Hey Jerry, schön, von dir zu hören. Das ist wirklich interessant! Vielleicht möchten Sie die Leute auf der sqlite-Mailingliste darüber befragen und bitte aktualisieren Sie Ihren Kommentar, wenn Sie herausfinden, warum das passiert. –