我在使用房间数据库运行程序时收到此错误
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 中的哪里进行更新呢?
当您第一次看到此消息时,您很可能正在使用未发布的数据库版本。如果是这样的话,您很可能不应该增加数据库版本。只需清除应用程序数据即可让您通过异常。如果您的应用程序已上线,您可能需要增加数据库版本并提供适当的迁移。
如果不增加数据库(推荐):
您应该从 Android 设置中清除该应用程序的应用数据。您也可以卸载以前的应用程序版本,然后安装新版本以通过异常。后一种方法在某些条件下不起作用(例如启用允许备份时)
由于清除应用程序数据总是有效,因此我每次都采取这条路线。
如果您增加数据库版本:
您将需要编写数据库迁移代码来应对数据库架构的任何更改。看here有关移民的信息。
编写数据库迁移代码的替代方法是调用fallbackToDestructiveMigration
在房间数据库生成器上。这可能不是一个好主意,因为此更改不应发布给实际用户。忘记删除此调用然后忘记升级数据库将导致用户数据丢失。
// Using this fallback is almost certainly a bad idea
Database database = Room.databaseBuilder(context, Database.class, DATABASE_NAME)
.fallbackToDestructiveMigration()
.build();
同样,如果以前的数据库模式不存在,则无需增加数据库版本或回退到破坏性迁移在野外.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)