Базовые данные: изменения ограничений, необходимые для миграции - PullRequest
2 голосов
/ 08 апреля 2019

Моя старая модель ManagedObject выглядит следующим образом, с ограничениями : [trackURL]

@objc(TrackDownloadInfo)
public class TrackDownloadInfo: NSManagedObject {

    @NSManaged public var trackURL: String
    @NSManaged public var downloadState: Int16
    @NSManaged public var id: Int64
    @NSManaged public var type: Int16

}

Я только что изменил ограничения: [id, type] без какой-либо версии модели, это вызывает ошибку миграции:

Ошибка домена = NSCocoaErrorDomain Code = 134110 «Произошла ошибка во время постоянной миграции хранилища». UserInfo = {sourceURL = file: ///var/mobile/Containers/Data/Application/FA440C2E-63EF-4533-94EB-4EA721A645A9/Library/Application%20Support/MyApp.sqlite, reason = Невозможно перенести хранилище на месте: ограничение Нарушение во время попытки миграции Code = 134111 "(null)" UserInfo = {_ NSCoreDataOptimisticLockingFailureConflictsKey = (""), NSUnderlyingException = нарушение ограничения, причина = нарушение ограничения во время попытки миграции, NSExceptionOmitCallstacks = true}}}, ["ошибка NSUnderlyingError = ошибка NSN") "(null)" UserInfo = {_ NSCoreDataOptimisticLockingFailureConflictsKey = (""), NSUnderlyingException = нарушение ограничения, причина = ограничение v

Я знаю, что это связано с тем, что в таблице присутствуют повторяющиеся записи с одинаковыми id и type, но trackURL отличается.

Я хочу удалить обе записи, чтобы перенести их. У меня не было никакого способа сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...