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