How to disable WAL journal mode

core-data, ios, objective-c, persistent-storage, wal

Solution

To disable WAL mode, set the journal_mode to DELETE

NSMutableDictionary *pragmaOptions = [NSMutableDictionary dictionary];
[pragmaOptions setObject:@"DELETE" forKey:@"journal_mode"];

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, pragmaOptions, NSSQLitePragmasOption, nil];
[_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]

Problem

https://developer.apple.com/library/ios/releasenotes/DataManagement/WhatsNew_CoreData_iOS/ I am having trouble in disabling journal mode. My code is: ``` static NSManagedObjectContext *managedObjectContext(){ static NSManagedObjectContext *context = nil; if (context != nil) { return context; } NSString * const NSSQLitePragmasOption; NSSQLitePragmasOption : @{ @"journal_mode" : @"DELETE" }; @autoreleasepool { context = [[NSManagedObjectContext alloc] init]; NSPersistentStoreCoordinator *coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:managedObjectModel()]; [context setPersistentStoreCoordinator:coordinator]; NSString *STORE_TYPE = NSSQLiteStoreType; NSString *path = @"ExerciseDB"; NSURL *url = [NSURL fileURLWithPath:[path stringByAppendingPathExtension:@"sqlite"]]; NSError *error; NSPersistentStore *newStore = [coordinator addPersistentStoreWithType:STORE_TYPE configuration:nil URL:url options:NSSQLitePragmasOption error:&error]; if (newStore == nil) { NSLog(@"Store Configuration Failure %@", ([error localizedDescription] != nil) ? [error localizedDescription] : @"Unknown Error"); } } return context; } ``` How would I go about disabling journal mode WAL. Thanks

Original source