Ensembles and journal_mode="УДАЛИТЬ"

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

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

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

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

1 ответ

Решение

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

Другие вопросы по тегам