Ансамбли и journal_mode=УДАЛИТЬ

Мой текущий стек Core Data настроен с 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 (а не 3 разных файла в режиме WAL), что упрощает мою жизнь, когда дело доходит до резервного копирования и восстановления базы данных sqlite в Dropbox пользователя. (Мне нужно сделать резервную копию или восстановить только один файл вместо трех)

Когда я добавляю код Ensembles, кажется, что он переопределяет NSSQLitePragmasOption и удаляет мой пользовательский DELETE journal_mode. Я могу сделать вывод, что, поскольку сразу после добавления кода Ensembles я вижу три сгенерированных файла sqlite вместо одного.

Является ли это известным требованием/поведением ансамблей? Может ли Ensemble правильно работать только в режиме журнала WAL, или я могу настроить его так же, чтобы использовать режим журнала DELETE?

Заранее спасибо.


person Joshua    schedule 03.03.2016    source источник


Ответы (1)


Существует свойство persistenceStoreOptions, которое можно использовать для указания CDEPersistentStoreEnsemble, какие параметры следует использовать для доступа к хранилищу. Просто передайте свои параметры этому свойству при создании объекта ансамбля.

person Drew McCormack    schedule 03.03.2016