update database migration

pull/941/head
ryanzhao 2 years ago
parent 9e08ab308b
commit 6708104efa

@ -15,14 +15,32 @@ enum _011_DisappearingMessageType: Migration {
t.add(.type, .integer) t.add(.type, .integer)
} }
_ = try DisappearingMessagesConfiguration func updateDisappearingMessageType(_ db: GRDB.Database, id: String, type: DisappearingMessagesConfiguration.DisappearingMessageType) throws {
.filter(DisappearingMessagesConfiguration.Columns.isEnabled == true) _ = try DisappearingMessagesConfiguration
.updateAll( .filter(DisappearingMessagesConfiguration.Columns.threadId == id)
db, .updateAll(
DisappearingMessagesConfiguration.Columns.type.set( db,
to: DisappearingMessagesConfiguration.DisappearingMessageType.disappearAfterRead DisappearingMessagesConfiguration.Columns.type.set(to: type)
) )
) }
try DisappearingMessagesConfiguration
.filter(DisappearingMessagesConfiguration.Columns.isEnabled == true)
.fetchAll(db)
.forEach { config in
if let thread = try? SessionThread.fetchOne(db, id: config.threadId) {
guard !thread.isNoteToSelf(db) else {
try updateDisappearingMessageType(db, id: config.threadId, type: .disappearAfterSend)
return
}
switch thread.variant {
case .contact: try updateDisappearingMessageType(db, id: config.threadId, type: .disappearAfterRead)
case .closedGroup: try updateDisappearingMessageType(db, id: config.threadId, type: .disappearAfterSend)
case .openGroup: return
}
}
}
Storage.update(progress: 1, for: self, in: target) // In case this is the last migration Storage.update(progress: 1, for: self, in: target) // In case this is the last migration
} }

Loading…
Cancel
Save