如何在房间迁移中更改索引?

boy*_*eak 3 migration android android-room

旧实体如下:

@Entity(tableName = "d_course",
    foreignKeys = @ForeignKey(entity = DUser.class, parentColumns = "id", childColumns = "studio"),
    indices = @Index(value = "studio"))
Run Code Online (Sandbox Code Playgroud)

新的实体如下:

@Entity(tableName = "d_course",
    foreignKeys = @ForeignKey(entity = DUser.class, parentColumns = "id", childColumns = "studio"),
    indices = @Index(value = {"id", "studio"}))
Run Code Online (Sandbox Code Playgroud)

如何迁移此索引更改。

Ole*_*leh 6

尝试指定此索引在迁移中的更改,例如(Kotlin):

val MIGRATION_1_2 = object : Migration(1, 2) {
    override fun migrate(database : SupportSQLiteDatabase) {
        ...
        database.execSQL("CREATE INDEX index_d_course_id_studio ON  d_course(id, studio)")
    }
}
Run Code Online (Sandbox Code Playgroud)