android - 在图书馆模块内清理房间数据库。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.
但是清除数据和卸载不起作用。我只能假设这是因为它位于应用程序的不同模块中。我不想更改版本号,因为它还没有发布。
解决方案
如果你改变了属性,那么你还需要增加数据库的版本,试试这个,如果你做了改变:
@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();
}
推荐阅读
- networking - Ansible - How to loop with a dict and a module's values
- selenium-webdriver - Selenium NUnit 从 Main() 或 exe 运行
- c# - WMI 文件夹添加 ACL 类型不匹配
- c# - VS2017 缺少命名空间(在 git pull 之后)
- android - 无法将 APK 上传到 App Center 以执行 Espresso UI 测试
- c# - response.End() 按钮点击后没有回发
- python - 如何避免重复进入数据库?
- node.js - 如何在发布事件之前确保聚合存在?
- c# - 在 ASP.NET Core 上实现“一劳永逸”方法的安全方法
- identityserver4 - IdentityServer4:是否可以在运行时更改权限?