SyncManager.upsert* never updates existing records #13

Open
opened 2026-06-29 20:24:38 +00:00 by llmad · 0 comments
Owner

Example:

private func upsertSong(_ dto: SongDTO, in context: ModelContext) -> SongModel {
    let id = dto.id
    let descriptor = FetchDescriptor<SongModel>(predicate: #Predicate { $0.id == id })
>    if let existing = try? context.fetch(descriptor).first {
>        // update existing
>        return existing
    } else {
        let model = SongModel.from(dto: dto)
        model.lastSynced = Date.now
        context.insert(model)
        return model
    }
}
Example: ```swift private func upsertSong(_ dto: SongDTO, in context: ModelContext) -> SongModel { let id = dto.id let descriptor = FetchDescriptor<SongModel>(predicate: #Predicate { $0.id == id }) > if let existing = try? context.fetch(descriptor).first { > // update existing > return existing } else { let model = SongModel.from(dto: dto) model.lastSynced = Date.now context.insert(model) return model } } ```
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
llmad/Aulos#13
No description provided.