![](/img/trans.png)
[英]Android Room - Verify the correctness of DB indices during migration unit test
[英]Android Room DB Migration
问题 - 执行强制更新 Play 商店更新时,Room DB 被擦除/清除。 我正在开发一个使用 Room DB 作为本地数据库的聊天信使应用程序。 每当我使用增加的数据库版本进行商店更新时,本地数据库都会被清除并且消息历史记录会丢失。
我正在使用房间数据库。 我的应用程序使用 Room DB 在 Play 商店中,版本为 4。
我的问题是我正在更改 9 个表架构,现在我更新了数据库版本,每个表架构都发生了变化。 我应该在这里增加数据库版本吗? 如何在不丢失用户数据的情况下使用 Room DB 在 Play 商店中强制更新来完成此操作? 前任。 DB 版本为 4,我更改了两个表的元素,如下面的查询。
当两个表被更改或更改为一个数字增量时,我是否需要将数据库版本增加两次? 示例:我需要 DB 将版本增加到 6 还是保持 5 就足够了?
private val mMigrationMessageStatus: Migration = object : Migration(4, 5) {
override fun migrate(database: SupportSQLiteDatabase) {
database.execSQL("ALTER TABLE message_status RENAME TO MessageStatus")
database.execSQL("ALTER TABLE MessageStatus ADD COLUMN userId TEXT NOT NULL default ''")
}
}
private val mMigrationGroupMember: Migration = object : Migration(4, 5) {
override fun migrate(database: SupportSQLiteDatabase) {
database.execSQL("ALTER TABLE group_member RENAME TO GroupMember")
database.execSQL("ALTER TABLE GroupMember ADD COLUMN userId TEXT NOT NULL default ''")
}
}
return Room.databaseBuilder(context, AppDatabase::class.java, dbName)
.allowMainThreadQueries()
.addMigrations(mMigrationMessageStatus,mMigrationGroupMember)
.build()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.