做視頻網(wǎng)站需要什么資質(zhì)廈門seo百度快照優(yōu)化
room數(shù)據(jù)庫升級很容易遇到一個問題,
java.lang.IllegalStateException: Migration didn't properly handle:?
Expected:xxx
Found:xxx
意思是數(shù)據(jù)庫執(zhí)行完你編寫的升級腳本后,發(fā)現(xiàn)數(shù)據(jù)庫當前的表結(jié)構(gòu)與你代碼中的Entity class結(jié)構(gòu)不一致,所以報錯。
一般這個問題是修改了Entity class內(nèi)容,但是卻漏了升級腳本。當然也可能是修改了升級腳本,但是卻忘記修改Entity class。
只需要仔細對比一下Expected行與Found行的內(nèi)容,哪里不同,就去修改升級腳本或Entity class即可。
room對kotlin的支持不錯,在Entity的data class中,聲明為可空的字段,room生成的sql語句會允許null,否則就會加上不允許空。
這個兩邊也是必須要匹配才行。不能出現(xiàn)kotlin中可以為空,但升級腳本中不可為空的情況。