合奏和journal_mode =" DELETE"

时间:2016-03-03 10:17:43

标签: ios objective-c core-data ensembles

我当前的核心数据堆栈配置了journal_mode =" DELETE"如下:

NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption: @YES,
                          NSInferMappingModelAutomaticallyOption: @YES,
                          NSSQLitePragmasOption: @{@"journal_mode": @"DELETE"}};
if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) {
    // Handle error 
}

此代码强制Core Data创建单个sqlite文件(而不是WAL模式下的3个不同文件),这让我的生活更轻松 在备份和恢复sqlite数据库到用户的Dropbox时。 (我需要备份或恢复一个文件而不是三个文件)

当我添加Ensembles代码时,它似乎会覆盖NSSQLitePragmasOption并删除我的自定义DELETE journal_mode。我可以得出结论,因为在添加Ensembles代码之后,我可以看到生成了三个sqlite文件而不是一个。

这是Ensembles的已知要求/行为吗? Ensemble只能在WAL日志模式下正常运行,还是可以将其配置为使用DELETE日志模式?

提前致谢。

1 个答案:

答案 0 :(得分:2)

有一个persistentStoreOptions属性可用于告诉CDEPersistentStoreEnsemble应该使用哪些选项来访问商店。在创建整体对象时,只需将选项传递给该属性即可。