@@ -7,6 +7,7 @@ import kotlinx.coroutines.channels.BufferOverflow
77import kotlinx.coroutines.flow.MutableSharedFlow
88import kotlinx.coroutines.flow.SharedFlow
99import kotlinx.serialization.json.Json
10+ import net.zetetic.database.sqlcipher.SQLiteDatabase
1011import org.session.libsession.snode.endpoint.Retrieve
1112import org.session.libsession.utilities.Address
1213import org.session.libsession.utilities.Address.Companion.toAddress
@@ -168,5 +169,26 @@ class ReceivedMessageDatabase(
168169 """ ,
169170 " CREATE INDEX idx_received_messages_repository_ts ON received_messages(repository_address, timestamp_ms)"
170171 )
172+
173+ fun migrateFromOldTable (db : SQLiteDatabase ) {
174+ db.rawQuery("""
175+ SELECT public_key, received_message_namespace, received_message_hash_values
176+ FROM session_received_message_hash_values_table
177+ """ ).use { cursor ->
178+ while (cursor.moveToNext()) {
179+ val publicKey = cursor.getString(0 )
180+ val namespace = cursor.getInt(1 )
181+ for (hash in cursor.getString(2 ).splitToSequence(" -" )) {
182+ db.rawExecSQL("""
183+ INSERT OR IGNORE INTO received_messages(repository_address, namespace, server_id)
184+ VALUES (?, ?, ?)
185+ """ , publicKey, namespace, hash)
186+ }
187+ }
188+ }
189+
190+ db.rawExecSQL(" DROP TABLE session_received_message_hash_values_table" )
191+ }
192+
171193 }
172194}
0 commit comments