Java.lang.IllegalStateException
Migration didn\'t properly handle user(therealandroid.github.com.roomcore.java.User).
Expected:
TableInfo{n
I have faced notNull differences in kotlin and found exception like below
Expected:
TableInfo{name='enDic', columns={definition=Column{name='definition', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}, _id=Column{name='_id', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=1, defaultValue='null'}, favourite=Column{name='favourite', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=0, defaultValue='null'}, word=Column{name='word', type='TEXT', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}, usage=Column{name='usage', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=0, defaultValue='null'}}, foreignKeys=[], indices=[]}
Found:
TableInfo{name='enDic', columns={usage=Column{name='usage', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=0, defaultValue='null'}, definition=Column{name='definition', type='text', affinity='2', notNull=true, primaryKeyPosition=0, defaultValue='null'}, _id=Column{name='_id', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=1, defaultValue='null'}, favourite=Column{name='favourite', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=0, defaultValue='null'}, word=Column{name='word', type='text', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='null'}}, foreignKeys=[], indices=[]}
Then I used below mentioned code to solve that problem
@Entity(tableName = "enDic")
data class Word(
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "_id")
var _id: Int?,
@ColumnInfo(name = "word")
var word: String?,
@ColumnInfo(name = "definition")
var definition: String,
@ColumnInfo(name = "favourite")
var favourite: Int?,
@ColumnInfo(name = "usage")
var usage: Int?
)
Instead of this code
@Entity(tableName = "enDic")
data class Word(
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "_id")
var _id: Int,
@ColumnInfo(name = "word")
var word: String,
@ColumnInfo(name = "definition")
var definition: String,
@ColumnInfo(name = "favourite")
var favourite: Int,
@ColumnInfo(name = "usage")
var usage: Int
)