Roomに列を追加したくてautoMigrationを使用して移行しversionも上げたのですがMigration didn't properly handleのエラーが出てExpectedとFoundが一致しません。修正方法をおしえていただけると幸いです。
発生している問題・エラーメッセージ
E/AndroidRuntime:
1 Process: com.example.jettodoapp, PID: 15730 2 java.lang.IllegalStateException: Migration didn't properly handle: Task(com.example.jettodoapp.Task). 3 Expected: 4 TableInfo{name='Task', columns={description=Column{name='description', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='undefined'}, id=Column{name='id', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=1, defaultValue='undefined'}, title=Column{name='title', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='undefined'}, description2=Column{name='description2', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue=''0''}}, foreignKeys=[], indices=[]} 5 Found: 6 TableInfo{name='Task', columns={id=Column{name='id', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=1, defaultValue='undefined'}, title=Column{name='title', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='undefined'}, description=Column{name='description', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='undefined'}}, foreignKeys=[], indices=[]} 7 at androidx.room.RoomOpenHelper.onUpgrade(RoomOpenHelper.kt:94) 8 at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.onUpgrade(FrameworkSQLiteOpenHelper.kt:252) 9 at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:416) 10 at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:316) 11 at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableOrReadableDatabase(FrameworkSQLiteOpenHelper.kt:231) 12 at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.innerGetDatabase(FrameworkSQLiteOpenHelper.kt:189) 13 at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getSupportDatabase(FrameworkSQLiteOpenHelper.kt:151) 14 at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.kt:104) 15 at androidx.room.RoomDatabase.inTransaction(RoomDatabase.kt:629) 16 at androidx.room.RoomDatabase.assertNotSuspendingTransaction(RoomDatabase.kt:448) 17 at androidx.room.RoomDatabase.query(RoomDatabase.kt:477) 18 at androidx.room.util.DBUtil.query(DBUtil.kt:75) 19 at com.example.jettodoapp.TaskDao_Impl$7.call(TaskDao_Impl.java:162) 20 at com.example.jettodoapp.TaskDao_Impl$7.call(TaskDao_Impl.java:159) 21 at androidx.room.CoroutinesRoom$Companion$createFlow$1$1$1.invokeSuspend(CoroutinesRoom.kt:128) 22 at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) 23 at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) 24 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 25 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 26 at java.lang.Thread.run(Thread.java:923) 27 Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [androidx.compose.ui.platform.MotionDurationScaleImpl@f803579, androidx.compose.runtime.BroadcastFrameClock@e77d2be, StandaloneCoroutine{Cancelling}@82ecf1f, AndroidUiDispatcher@3d26c]
該当のソースコード
@Entity data class Task( @PrimaryKey(autoGenerate = true)val id:Int = 0, var title: String, var description: String, @ColumnInfo(defaultValue="0") var description2: String, ) @Database( entities = [Task::class], version = 2, exportSchema =true, autoMigrations = [ AutoMigration (from = 1, to = 2) ]) abstract class AppDatabase : RoomDatabase() { abstract fun taskDao(): TaskDao }
あなたの回答
tips
プレビュー