小编Edu*_*rdo的帖子

由于“primaryKeyPosition”值错误,房间数据库迁移测试出错

我正在测试房间迁移,在“迁移和验证”步骤中,我收到了java.lang.IllegalStateException:迁移失败。由于primaryKeyPosition“service_id”列上的值错误。深入挖掘一点,我注意到在预期方面,actual_visit_id_service_id_primary_key 中的属性具有不同的pk索引 (1, 2),而在Found方面,两者都具有相同的 (1, 1)

我检查了安装的应用程序中表actual_visit_service的数据库模式和列service_idpk2(如预期)

失败的实体:

@Entity(
    tableName = ACTUAL_VISIT_SERVICE_TABLE,
    indices = [Index(
        value = [ACTUAL_VISIT_SERVICE_SERVICE_ID, ACTUAL_VISIT_SERVICE_ACTUAL_VISIT_ID], unique = true
    )],
    foreignKeys = [(ForeignKey(
        entity = ActualVisitEntity::class,
        parentColumns = [ID],
        childColumns = [ACTUAL_VISIT_SERVICE_ACTUAL_VISIT_ID],
        onDelete = ForeignKey.CASCADE
    ))],
    primaryKeys = [ACTUAL_VISIT_SERVICE_ACTUAL_VISIT_ID, ACTUAL_VISIT_SERVICE_SERVICE_ID]
)
data class ActualVisitServicesEntity(
    @ColumnInfo(name = ACTUAL_VISIT_SERVICE_ACTUAL_VISIT_ID)
    val actualVisitId: String,
    @ColumnInfo(name = ACTUAL_VISIT_SERVICE_AMOUNT)
    val amount: Double?,
    @ColumnInfo(name …
Run Code Online (Sandbox Code Playgroud)

database-migration android-room

7
推荐指数
0
解决办法
454
查看次数

标签 统计

android-room ×1

database-migration ×1