I am implementing a custom migration, and facing an issue while implementing a WAL checkpointing.
Here is the code for WAL checkpointing
func forceWALCheckpointingForStore(at storeURL: URL, model: NSManagedObjectModel) throws {
	let persistentStoreCoordinator = NSPersistentStoreCoordinator(managedObjectModel: model)
	let options = [NSSQLitePragmasOption: ["journal_mode": "DELETE"]]
	let store = try persistentStoreCoordinator.addPersistentStore(type: .sqlite, at: storeURL, options: options)
	try persistentStoreCoordinator.remove(store)
}
When the coordinator tries to add the store I am getting the following error
fault: Store opened without NSPersistentHistoryTrackingKey but previously had been opened with NSPersistentHistoryTrackingKey - Forcing into Read Only mode store
My questions are
- Is it really necessary to force WAL checkpointing before migration? I am expecting NSMigrationManager to handle it internally. I am assuming this because the migrateStore function asks for the sourceType where I am passing 
StoreType.sqlite - If checkpointing is required, then how do I address the original issue
 
Note:
- Since my app supports macOS 13, I am not able to use the newly introduced Staged migrations.
 - There is similar question on Stackoverflow that remains unanswered. https://stackoverflow.com/q/69131577/1311902