java.lang.IllegalStateException:迁移没有正确处理。表未更改



我在编写房间迁移的示例测试时遇到了一个问题。当我运行测试时,我得到了上述异常,然而,导致问题的表在数据库版本之间并没有改变。

Expected: TableInfo{name='UserSettings', columns={userLocalId=Column{name='userLocalId', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=1, defaultValue='null'}, value=Column{name='value', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}, key=Column{name='key', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=2, defaultValue='null'}}, foreignKeys=[], indices=[]} 
found: TableInfo{name='UserSettings', columns={userLocalId=Column{name='userLocalId', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=1, defaultValue='null'}, value=Column{name='value', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}, key=Column{name='key', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=1, defaultValue='null'}}, foreignKeys=[], indices=null}

我能看出发现和预期之间的区别,但我不知道是什么原因造成的。My UserSettings.kt类:

@Entity(tableName = "UserSettings", primaryKeys = ["userLocalId", "key"])
data class UserSettingsEntity(
@ColumnInfo(name = "userLocalId") val userLocalId: String,
@ColumnInfo(name = "key") val key: String,
@ColumnInfo(name = "value") val value: String
)

编辑发现其已知的Roboelectric和迁移测试问题。房间数据库迁移测试出错,原因是错误的";primaryKeyPosition";值

这是打字错误,请检查单词类型的列名值

value=Column{name='value',tye='TEXT',affinity='2',notNull=true

最新更新