diff --git a/Sources/DataStack+Migration.swift b/Sources/DataStack+Migration.swift index 11601f6..c6dec22 100644 --- a/Sources/DataStack+Migration.swift +++ b/Sources/DataStack+Migration.swift @@ -683,6 +683,15 @@ public extension DataStack { private func startMigrationForStorage(_ storage: T, sourceModel: NSManagedObjectModel, destinationModel: NSManagedObjectModel, mappingModel: NSMappingModel, migrationType: MigrationType, progress: Progress) throws { + do { + + try storage.cs_finalizeStorageAndWait(soureModelHint: sourceModel) + } + catch { + + throw CoreStoreError(error) + } + let fileURL = storage.fileURL if case .lightweight = migrationType { @@ -715,7 +724,6 @@ public extension DataStack { } timerQueue.async(execute: recursiveCheck) - _ = try storage.cs_finalizeStorageAndWait(soureModelHint: sourceModel) _ = try withExtendedLifetime(NSPersistentStoreCoordinator(managedObjectModel: destinationModel)) { (coordinator: NSPersistentStoreCoordinator) in try coordinator.addPersistentStoreSynchronously( @@ -731,13 +739,13 @@ public extension DataStack { fakeProgress = 1 } - _ = try? storage.cs_finalizeStorageAndWait(soureModelHint: destinationModel) + try storage.cs_finalizeStorageAndWait(soureModelHint: destinationModel) progress.completedUnitCount = progress.totalUnitCount return } catch { - // try manual migration + throw CoreStoreError(error) } } @@ -765,7 +773,6 @@ public extension DataStack { do { - try storage.cs_finalizeStorageAndWait(soureModelHint: sourceModel) try migrationManager.migrateStore( from: fileURL, sourceType: type(of: storage).storeType, diff --git a/Sources/SQLiteStore.swift b/Sources/SQLiteStore.swift index be95dfb..7abebde 100644 --- a/Sources/SQLiteStore.swift +++ b/Sources/SQLiteStore.swift @@ -219,6 +219,7 @@ public final class SQLiteStore: LocalStorage { options: [NSSQLitePragmasOption: ["journal_mode": "DELETE"]] ) } + _ = try? FileManager.default.removeItem(atPath: "\(self.fileURL.path)-shm") } /**