小编Mac*_*cMc的帖子

NSMigrationManager.migrateStore 与 NSPersistentHistoryTrackingKey

我有一个核心数据实现。该堆栈是使用 NSPercientContainer 加载的。在设置过程中,我在 NSPersistentStoreDescription 上设置了 NSPersistentHistoryTrackingKey。

description.setOption(true as NSNumber, forKey: NSPersistentHistoryTrackingKey)
Run Code Online (Sandbox Code Playgroud)

我正在尝试沿着这条线实现渐进式迁移https://williamboles.me/progressive-core-data-migration/(顺便说一句,这是一篇很棒的文章!)

我遇到的第一个问题是在 WAL 中强制设置检查点。代码非常简单:

func forceWALCheckpointingForStore(at storeURL: URL) {
guard let metadata = NSPersistentStoreCoordinator.metadata(at: storeURL), let currentModel = NSManagedObjectModel.compatibleModelForStoreMetadata(metadata) else {
    return
}

do {
    let persistentStoreCoordinator = NSPersistentStoreCoordinator(managedObjectModel: currentModel)

    let options = [NSSQLitePragmasOption: ["journal_mode": "DELETE"]]
    let store = persistentStoreCoordinator.addPersistentStore(at: storeURL, options: options)
    try persistentStoreCoordinator.remove(store)
} catch let error {
    fatalError("failed to force WAL checkpointing, error: \(error)")
  }
}
Run Code Online (Sandbox Code Playgroud)

当 NSPersistentStoreCoordinator 运行 addPersistentStore 时会出现此问题。我收到以下错误:

存储在没有 NSPersistentHistoryTrackingKey 的情况下打开,但之前已使用 …

core-data-migration

6
推荐指数
0
解决办法
408
查看次数

标签 统计

core-data-migration ×1