android确实迁移到房间需要卸载该应用程序

时间:2019-01-30 18:17:36

标签: android android-room

我们的应用程序具有数据库版本14,并使用了android sqllite帮助器。现在我们要使用room db,并将所有DB内容迁移到room。我们定义了从1_2,2_3 ..到13_14的所有迁移,并为所有这些int构建

.databaseBuilder(
                app,
                Database::class.java,
                "my.db"
        ).addMigrations(arrayOf(
        MIGRATION_1_2,
        MIGRATION_2_3,
       .....
        MIGRATION_10_11,
        MIGRATION_11_12,
        MIGRATION_12_13,
        MIGRATION_13_14
))
        .build()

这是正确的做法。如果我安装了数据库版本14的非房间版本的应用程序,并且尝试将其更新为具有相同数据库版本14的应用程序的房间版本,则出现错误:

  

java.lang.IllegalStateException:房间无法验证数据   诚信。看起来您已经更改了架构,却忘记了更新   版本号。您可以通过增加版本来解决此问题   数字。

1 个答案:

答案 0 :(得分:1)

您只需要添加从现有SQLite数据库到Room管理的数据库的迁移。这应该是一个空的“不执行任何操作”迁移。这是必需的,以便Room可以与您现有的数据库很好地配合使用。