2016-03-03 58 views
0

我的当前核心数据栈被配置成与journal_mode =“DELETE”如下:合奏和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 
} 

此代码强制核心数据以创建单个源码文件(而不是3个不同的文件在WAL模式),这使我的生活更容易 当涉及到备份和恢复到用户的Dropbox的SQLite数据库。 (我需要备份或还原只有一个文件,而不是三个)

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

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

在此先感谢。

回答

2

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

+0

完美,它的作品!谢谢你的帮助。 – Joshua