如何抑制 Room 数据库架构更改错误?

问题描述

我只是在玩弄我的架构,自从我更改了架构/实体类后,我根本无法加载我的应用。

我已经删除了测试设备上的应用程序,清除了 AndroidStudio 上的缓存,并重新启动了我的机器,但错误仍然存​​在。我所做的只是更改 Room 数据库的实体数据类之一的认值。

如何在不增加版本号和提供迁移路径的情况下强制 AndroidStudio 忘记旧的表架构/实体类

错误

java.lang.IllegalStateException: 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.

解决方法

Android Studio 不会保存数据库架构信息,您的应用会保存。因此,您可以清除测试设备上的应用数据,并在不增加版本号的情况下解决问题。


但是,如果不清除应用数据,您可以使用 RoomDatabase.Builder.fallbackToDestructiveMigration() 并增加版本号,如果您很高兴丢失先前数据库的内容,则可以避免实施迁移逻辑。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...