@@ -3,7 +3,9 @@ package com.getcode.db
33import android.content.Context
44import androidx.room.AutoMigration
55import androidx.room.Database
6+ import androidx.room.DeleteColumn
67import androidx.room.DeleteTable
8+ import androidx.room.RenameColumn
79import androidx.room.Room
810import androidx.room.RoomDatabase
911import androidx.room.TypeConverters
@@ -35,13 +37,15 @@ import java.io.File
3537 Conversation ::class ,
3638 ConversationMessage ::class ,
3739 ConversationMessageRemoteKey ::class ,
40+ ConversationIntentIdReference ::class ,
3841 ],
3942 autoMigrations = [
4043 AutoMigration (from = 7 , to = 8 , spec = AppDatabase .Migration7To8 ::class ),
4144 AutoMigration (from = 8 , to = 9 , spec = AppDatabase .Migration8To9 ::class ),
4245 AutoMigration (from = 10 , to = 11 , spec = AppDatabase .Migration10To11 ::class ),
46+ AutoMigration (from = 11 , to = 12 , spec = AppDatabase .Migration11To12 ::class ),
4347 ],
44- version = 11
48+ version = 12
4549)
4650@TypeConverters(Converters ::class )
4751abstract class AppDatabase : RoomDatabase () {
@@ -55,14 +59,42 @@ abstract class AppDatabase : RoomDatabase() {
5559 abstract fun conversationDao (): ConversationDao
5660 abstract fun conversationMessageDao (): ConversationMessageDao
5761 abstract fun conversationMessageRemoteKeyDao (): ConversationMessageRemoteKeyDao
62+ abstract fun conversationIntentMappingDao (): ConversationIntentMappingDao
5863
5964 @DeleteTable(tableName = " HistoricalTransaction" )
6065 class Migration7To8 : AutoMigrationSpec
6166
6267 @DeleteTable(tableName = " SendLimit" )
6368 class Migration8To9 : AutoMigrationSpec
6469
65- class Migration10To11 : Migration (10 , 11 ), AutoMigrationSpec {
70+ class Migration10To11 : Migration (10 , 11 ), AutoMigrationSpec {
71+ override fun migrate (db : SupportSQLiteDatabase ) {
72+ db.execSQL(" DROP TABLE messages" )
73+ }
74+ }
75+
76+ @RenameColumn.Entries (
77+ RenameColumn (
78+ tableName = " conversations" ,
79+ fromColumnName = " messageIdBase58" ,
80+ toColumnName = " idBase58"
81+ )
82+ )
83+ @DeleteColumn.Entries (
84+ DeleteColumn (
85+ tableName = " conversations" ,
86+ columnName = " cursorBase58"
87+ ),
88+ DeleteColumn (
89+ tableName = " conversations" ,
90+ columnName = " tipAmount"
91+ ),
92+ DeleteColumn (
93+ tableName = " conversations" ,
94+ columnName = " createdByUser"
95+ )
96+ )
97+ class Migration11To12 : Migration (11 , 12 ), AutoMigrationSpec {
6698 override fun migrate (db : SupportSQLiteDatabase ) {
6799 db.execSQL(" DROP TABLE messages" )
68100 }
@@ -92,10 +124,6 @@ object Database {
92124 .fallbackToDestructiveMigration()
93125 .build()
94126
95- instance?.conversationDao()?.clearConversations()
96- instance?.conversationMessageDao()?.clearMessages()
97- instance?.conversationMessageRemoteKeyDao()?.clearRemoteKeys()
98-
99127 isInitSubject.onNext(true )
100128 trace(" database init end" , type = TraceType .Process )
101129 }
0 commit comments