[英]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.