Я успешно запустил 1-ю версию своего приложения с MyProject.xcdatamodel
. Сейчас моя вторая версия находится в разработке, и я создал новую версию модели с именем MyProject2.xcdatamodel
на основе MyProject.xcdatamodel
и установил для нее значение Current
. Я включил облегченную миграцию в моем AppDelegate
:
lazy var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "MyProject")
// Support for light-weight migration
/*-------------------------------------------------------*/
let description = NSPersistentStoreDescription()
description.shouldMigrateStoreAutomatically = true
description.shouldInferMappingModelAutomatically = true
container.persistentStoreDescriptions = [description]
/*-------------------------------------------------------*/
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()
После этого я сначала установил старую версию, а затем установил новую версию поверх старой. При запуске новой версии в одной из таблиц моей базы данных старой модели не найдено данных, которые я не касался. Если я удалю эти 4 строки миграции, будут получены данные.
В чем может быть причина? Что я делаю неправильно для облегченной миграции?