WIP: migrations for CoreStoreObjects

This commit is contained in:
John Estropia
2017-04-07 21:57:45 +09:00
parent c0ae129b22
commit e5ef4992d3
2 changed files with 8 additions and 29 deletions

View File

@@ -104,11 +104,12 @@ internal extension NSManagedObjectModel {
if let modelVersionFileURL = modelVersionFileURL,
let rootModel = NSManagedObjectModel(contentsOf: modelVersionFileURL) {
rootModel.modelVersionFileURL = modelVersionFileURL
rootModel.modelVersions = modelVersions
rootModel.currentModelVersion = currentModelVersion
return rootModel
// TODO: apply to DynamicModel as well
rootModel.modelVersionFileURL = modelVersionFileURL
rootModel.modelVersions = modelVersions
rootModel.currentModelVersion = currentModelVersion
return rootModel
}
CoreStore.abort("Could not create an \(cs_typeName(NSManagedObjectModel.self)) from the model at URL \"\(modelFileURL)\".")
@@ -178,29 +179,6 @@ internal extension NSManagedObjectModel {
return mapping
}
// TODO: remove
// @nonobjc
// internal func entityNames(for type: NSManagedObject.Type) -> Set<EntityName> {
//
// let className = NSStringFromClass(type)
// return Set(
// self.objectClassNamesByEntityName
// .filter({ $0.value == className })
// .map({ $0.key })
// )
// }
//
// @nonobjc
// internal func entityTypesMapping() -> [EntityName: NSManagedObject.Type] {
//
// var mapping = [EntityName: NSManagedObject.Type]()
// self.objectClassNamesByEntityName.forEach { (entityName, className) in
//
// mapping[entityName] = (NSClassFromString(className)! as! NSManagedObject.Type)
// }
// return mapping
// }
@nonobjc
internal func mergedModels() -> [NSManagedObjectModel] {
@@ -222,6 +200,7 @@ internal extension NSManagedObjectModel {
return nil
}
// TODO: apply to DynamicModel as well
let versionModelFileURL = modelFileURL.appendingPathComponent("\(modelVersion).mom", isDirectory: false)
guard let model = NSManagedObjectModel(contentsOf: versionModelFileURL) else {

View File

@@ -29,7 +29,7 @@ import Foundation
// MARK: - DynamicObject
public protocol DynamicObject: class {
static func cs_forceCreate(entityDescription: NSEntityDescription, into context: NSManagedObjectContext, assignTo store: NSPersistentStore) -> Self
static func cs_fromRaw(object: NSManagedObject) -> Self