首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android机房DB迁移

Android机房DB迁移
EN

Stack Overflow用户
提问于 2021-05-25 07:20:36
回答 1查看 411关注 0票数 0

问题-当执行强制更新、播放、存储更新时,DB会被擦除/清除。我正在开发一个聊天信使应用程序,它使用Room DB作为本地数据库。每当我使用增加的DB版本进行存储更新时,本地DB就会被清除,消息历史记录也会丢失。

我在用DB房间。我的应用程序是在游戏商店中使用房间DB和版本是4。

我的问题是,我正在更改9个表模式,现在我更新了DB版本,每个表模式都会发生变化。我应该在这里增加DB版本吗?如何在不丢失用户数据的情况下在Play Store中使用Room DB进行强制更新?例如。DB版本为4,我更改了两个表的元素,如下所示。

当两个表被更改时,我是否需要将DB版本增加两倍,还是更改为一个数字增量就可以了?示例:我是否需要DB将版本提高到6,还是保留它5就足够了?

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

发布于 2022-01-18 01:55:35

房间版本2.4.0中,您可以轻松地使用autoMigrations进行更新。

数据库类

代码语言:javascript
复制
@Database(
    version = 3,
    autoMigrations = [
        AutoMigration(from = 1, to = 2),
        AutoMigration(from = 2, to = 3)
    ],
    .....
)

数据类

代码语言:javascript
复制
@Entity(tableName = "user")
data class DataUser(
    ....
    // I added this column, like this
    @ColumnInfo(defaultValue = "")var test: String = ""  
)

见下文参考资料

android开发人员:房间版本2.4.0

安卓开发者: autoMigration

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67683405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档