首页 > 解决方案 > 如果我们不知道开始版本,则进行房间迁移

问题描述

我正在为 android 应用程序编写迁移,如下所示。

val MIGRATION_5_6: Migration = object : Migration(5, 6) {
            override fun migrate(database: SupportSQLiteDatabase) {
                database.execSQL("ALTER TABLE survey_grid " + " ADD COLUMN new_column INTEGER NOT NULL")
            }
        }

    val MIGRATION_6_7: Migration = object : Migration(6, 7) {
        override fun migrate(database: SupportSQLiteDatabase) {
            database.execSQL("ALTER TABLE survey_grid " + " ADD COLUMN new_column_2 INTEGER NOT NULL")
        }
    }

    val MIGRATION_1_7: Migration = object : Migration(1, 7) {
        override fun migrate(database: SupportSQLiteDatabase) {
            database.execSQL("ALTER TABLE survey_grid " + " ADD COLUMN new_column_3 INTEGER NOT NULL")
        }
    }

现在我的当前版本是 7,但我不知道用户的当前应用程序版本。从start versioncurrent version=7可以有多种组合 。

我如何编写迁移,它为我提供用户旧版本的应用程序和新版本,因为它是在SQLiteDatabaseHelper的onUpgrade函数中完成的?任何帮助将不胜感激。

标签: androidkotlinandroid-room

解决方案


推荐阅读