empty migration to fix big flattenParentIds for DM
This commit is contained in:
parent
a5b09b9dc3
commit
adcd1a64df
@ -19,9 +19,10 @@ package org.matrix.android.sdk.internal.database
|
|||||||
import io.realm.DynamicRealm
|
import io.realm.DynamicRealm
|
||||||
import io.realm.FieldAttribute
|
import io.realm.FieldAttribute
|
||||||
import io.realm.RealmMigration
|
import io.realm.RealmMigration
|
||||||
import org.matrix.android.sdk.api.session.room.model.VersioningState
|
|
||||||
import org.matrix.android.sdk.api.session.events.model.EventType
|
import org.matrix.android.sdk.api.session.events.model.EventType
|
||||||
|
import org.matrix.android.sdk.api.session.room.model.Membership
|
||||||
import org.matrix.android.sdk.api.session.room.model.RoomJoinRulesContent
|
import org.matrix.android.sdk.api.session.room.model.RoomJoinRulesContent
|
||||||
|
import org.matrix.android.sdk.api.session.room.model.VersioningState
|
||||||
import org.matrix.android.sdk.api.session.room.model.create.RoomCreateContent
|
import org.matrix.android.sdk.api.session.room.model.create.RoomCreateContent
|
||||||
import org.matrix.android.sdk.api.session.room.model.tag.RoomTag
|
import org.matrix.android.sdk.api.session.room.model.tag.RoomTag
|
||||||
import org.matrix.android.sdk.internal.database.model.CurrentStateEventEntityFields
|
import org.matrix.android.sdk.internal.database.model.CurrentStateEventEntityFields
|
||||||
@ -40,13 +41,14 @@ import org.matrix.android.sdk.internal.database.model.SpaceChildSummaryEntityFie
|
|||||||
import org.matrix.android.sdk.internal.database.model.SpaceParentSummaryEntityFields
|
import org.matrix.android.sdk.internal.database.model.SpaceParentSummaryEntityFields
|
||||||
import org.matrix.android.sdk.internal.database.model.TimelineEventEntityFields
|
import org.matrix.android.sdk.internal.database.model.TimelineEventEntityFields
|
||||||
import org.matrix.android.sdk.internal.di.MoshiProvider
|
import org.matrix.android.sdk.internal.di.MoshiProvider
|
||||||
|
import org.matrix.android.sdk.internal.query.process
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class RealmSessionStoreMigration @Inject constructor() : RealmMigration {
|
class RealmSessionStoreMigration @Inject constructor() : RealmMigration {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val SESSION_STORE_SCHEMA_VERSION = 14L
|
const val SESSION_STORE_SCHEMA_VERSION = 15L
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun migrate(realm: DynamicRealm, oldVersion: Long, newVersion: Long) {
|
override fun migrate(realm: DynamicRealm, oldVersion: Long, newVersion: Long) {
|
||||||
@ -66,6 +68,7 @@ class RealmSessionStoreMigration @Inject constructor() : RealmMigration {
|
|||||||
if (oldVersion <= 11) migrateTo12(realm)
|
if (oldVersion <= 11) migrateTo12(realm)
|
||||||
if (oldVersion <= 12) migrateTo13(realm)
|
if (oldVersion <= 12) migrateTo13(realm)
|
||||||
if (oldVersion <= 13) migrateTo14(realm)
|
if (oldVersion <= 13) migrateTo14(realm)
|
||||||
|
if (oldVersion <= 14) migrateTo15(realm)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun migrateTo1(realm: DynamicRealm) {
|
private fun migrateTo1(realm: DynamicRealm) {
|
||||||
@ -292,7 +295,7 @@ class RealmSessionStoreMigration @Inject constructor() : RealmMigration {
|
|||||||
Timber.d("Step 13 -> 14")
|
Timber.d("Step 13 -> 14")
|
||||||
val roomAccountDataSchema = realm.schema.create("RoomAccountDataEntity")
|
val roomAccountDataSchema = realm.schema.create("RoomAccountDataEntity")
|
||||||
.addField(RoomAccountDataEntityFields.CONTENT_STR, String::class.java)
|
.addField(RoomAccountDataEntityFields.CONTENT_STR, String::class.java)
|
||||||
.addField(RoomAccountDataEntityFields.TYPE, String::class.java, FieldAttribute.INDEXED)
|
.addField(RoomAccountDataEntityFields.TYPE, String::class.java, FieldAttribute.INDEXED)
|
||||||
|
|
||||||
realm.schema.get("RoomEntity")
|
realm.schema.get("RoomEntity")
|
||||||
?.addRealmListField(RoomEntityFields.ACCOUNT_DATA.`$`, roomAccountDataSchema)
|
?.addRealmListField(RoomEntityFields.ACCOUNT_DATA.`$`, roomAccountDataSchema)
|
||||||
@ -306,4 +309,16 @@ class RealmSessionStoreMigration @Inject constructor() : RealmMigration {
|
|||||||
|
|
||||||
roomAccountDataSchema.isEmbedded = true
|
roomAccountDataSchema.isEmbedded = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun migrateTo15(realm: DynamicRealm) {
|
||||||
|
// fix issue with flattenParentIds on DM that kept growing with duplicate
|
||||||
|
// so we reset it, will be updated next sync
|
||||||
|
realm.where("RoomSummaryEntity")
|
||||||
|
.process(RoomSummaryEntityFields.MEMBERSHIP_STR, Membership.activeMemberships())
|
||||||
|
.equalTo(RoomSummaryEntityFields.IS_DIRECT, true)
|
||||||
|
.findAll()
|
||||||
|
.onEach {
|
||||||
|
it.setString(RoomSummaryEntityFields.FLATTEN_PARENT_IDS, null)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user