首页 > 解决方案 > 在图书馆模块内清理房间数据库。Room 无法验证数据完整性

问题描述

在测试在 Android 库模块中定义的房间数据库并更改数据库属性时,我收到错误消息:

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.

但是清除数据和卸载不起作用。我只能假设这是因为它位于应用程序的不同模块中。我不想更改版本号,因为它还没有发布。

标签: androidandroid-room

解决方案


如果你改变了属性,那么你还需要增加数据库的版本,试试这个,如果你做了改变:

@Database(entities = {Coin.class}, version = 6, exportSchema = false)
public abstract class CoinDatabase extends RoomDatabase {
    public abstract CoinDao daoAccess();
}

另一方面,您可以在构建数据库时添加一个额外的参数(在我的情况下,存储库构造函数构建数据库)。有趣的部分是fallbackToDestructiveMigration(),因为 Room 没有“alter”或您可能在关系数据库中使用的东西,应该改用迁移。

public CoinRepository(Context context) {
        coinDatabase = Room.databaseBuilder(context, CoinDatabase.class, DB_NAME).fallbackToDestructiveMigration().build();
    }

推荐阅读