我当前的核心数据堆栈配置为 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
}
此代码强制核心数据创建单个 sqlite 文件(而不是 WAL 模式下的 3 个不同文件),这使我在备份和恢复 sqlite 数据库到用户的 Dropbox 时的工作更加轻松。(我只需要备份或恢复一个文件而不是三个)
当我添加 Ensembles 代码时,它似乎覆盖了 NSSQLitePragmasOption 并删除了我的自定义 DELETE journal_mode。我可以得出结论,因为在添加 Ensembles 代码之后,我可以看到生成了三个 sqlite 文件,而不仅仅是一个。
这是 Ensembles 的已知要求/行为吗?Ensemble 只能在 WAL 日志模式下正确运行,还是我可以将其配置为也使用 DELETE 日志模式?
提前致谢。