2016-04-06 9 views
0

Was ist die magische Kombination von Optionen, die an den SQLite gesendet werden, um das Journaling vollständig auszuschalten.Schalten Sie den WAL-Dateimodus in RestKit Swift aus.

Ich habe eine Initialisierung bei der Installation, die eine Menge Daten bringt. Ich brauche an dieser Stelle kein Journaling und es lädt den Speicher nach der Installation auf über 500 MB!

Ich habe versucht:

var options = Dictionary<NSObject, AnyObject>() 
options[NSMigratePersistentStoresAutomaticallyOption] = true 
options[NSInferMappingModelAutomaticallyOption] = true 
options[NSSQLitePragmasOption] = ["journal_mode" : "TRUNCATE”] 

oder

options[NSSQLitePragmasOption] = ["journal_mode" : “OFF"] 

oder

options[NSSQLitePragmasOption] = ["journal_mode" : “DELETE”] 

und

options[NSSQLiteManualVacuumOption] = true 

sogar

options[NSSQLitePragmasOption] = ["journal_size_limit" : "20000”] 

von:

do { 
        _ = try 
         self.managedObjectStore!.addSQLitePersistentStoreAtPath(storePath, fromSeedDatabaseAtPath: nil, withConfiguration: nil, options: options) 
       } catch let error as NSError { 
        print("fail to add persistent store") 
        print(error) 
       } 

Nichts scheint mir zu erlauben, diese ganz auszuschalten. Die WAL-Datei wächst immer.

Antwort

0

Sie waren fast da nur eine kleine Korrektur

var options = Dictionary<NSObject, AnyObject>() 
    options[NSMigratePersistentStoresAutomaticallyOption] = true 
options[NSInferMappingModelAutomaticallyOption] = true 
options ["journal_mode" ] = "DELETE” 
Verwandte Themen