Room 无法验证数据完整性

新手上路,请多包涵

使用 Room Database 运行程序时出现此错误

Room cannot verify the data integrity. Looks like you've changed schema but forgot to update the version number.
You can simply fix this by increasing the version number.

看来我们需要更新数据库版本,但是我们可以在 Room 中从哪里进行更新呢?

原文由 Ravi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.9k
2 个回答

Aniruddh Parihar 的回答给了我一个提示,它解决了。

搜索您已扩展的类 RoomDatabase 。在那里你会找到如下版本:

 @Database(entities = {YourEntity.class}, version = 1)

只需增加版本,问题就解决了。

原文由 Ravi 发布,翻译遵循 CC BY-SA 3.0 许可协议

快速解决方案

转到 AddDatabase 类并增加您的数据库版本

import androidx.room.Database
import androidx.room.RoomDatabase
import androidx.room.migration.Migration
import androidx.sqlite.db.SupportSQLiteDatabase

@Database(entities = arrayOf(Product::class, SatisNok::class), version = 6)
abstract class AppDatabase : RoomDatabase() {
    abstract fun productDao(): ProductDao
    abstract fun satisDao(): SatisNokDao
}

去活动或你打电话给你的地方 db

添加迁移的方法,这里我把版本从5改成了6

   val MIGRATION_1_2: Migration = object : Migration(5,6) {
            override fun migrate(database: SupportSQLiteDatabase) {
                // Since we didn't alter the table, there's nothing else to do here.
            }
        }

现在将迁移添加添加到您的数据库 构建器 中作为 .addMigrations(MIGRATION_1_2)

  val db = Room.databaseBuilder(
                applicationContext,
                AppDatabase::class.java, "supervisor"
            ).fallbackToDestructiveMigration()
                .allowMainThreadQueries()
                .addMigrations(MIGRATION_1_2)
                .build()

有关更多详细信息,您可能希望在 这里查看 它日益复杂的情况,它们应该提供更简单的解决方案。

操作后,您可以在 //.addMigrations(MIGRATION_1_2) 行注释并保留下次使用

原文由 Samir 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题