Room无法验证数据完整性,但是我启用了描述性迁移

时间:2019-10-25 12:21:48

标签: android android-sqlite android-room

我从Room IllegalStateException中收到一条错误消息,原因是我将db值从non nullable更改为nullable时发现“ Room无法验证数据完整性”,但是我的数据库设置如下:

@JvmStatic
@Provides
@ApplicationScope
fun provideRoomDatabase(context: Application): MyDb = Room.databaseBuilder(
    context,
    MyDb::class.java, DB_NAME
).fallbackToDestructiveMigration().build()

这可能是个问题吗?

1 个答案:

答案 0 :(得分:1)

进行更改后,您是否增加了数据库版本?由于它确实会重新创建数据库,但有时仍会使用旧模式,因此,通过增加版本,您可以修复异常。您也可以在此处Room Migration

的文档中进行检查
  

更新数据库的架构后,某些设备上数据库仍可能使用较旧的架构版本。如果Room无法找到将设备数据库从旧版本升级到当前版本的迁移规则,则会发生IllegalStateException。