2016-04-06 4 views
0

Какова волшебная комбинация параметров для отправки в sqlite, чтобы полностью отключить ведение журнала.Отключить режим файла WAL в RestKit Swift

У меня есть инициализация при установке, которая сбивает много данных. Мне не нужно вести журнал в этот момент , и он запускает память памяти при установке до более 500 МБ!

Я попытался:

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

или

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

или

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

и

options[NSSQLiteManualVacuumOption] = true 

даже

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

по:

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) 
       } 

Ничто, кажется, чтобы позволить мне отключить это полностью. Файл WAL всегда растет.

ответ

0

Вы были почти там только небольшая коррекция

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