1.解決上一篇遺留的bug
原因分析: 當某張表需要添加一個int類型的列時,升級數據庫則會報NOT NULL約束不通過,原因是 GreenDao建表時int 類型 加了NOT NULL
- 解決方案一:在bean對象中不使用int類型屬性,直接使用int的包裝類Integer或者String代替,個人感覺這是最簡單的方式。
-
解決方案二:通過報錯信息,我們可以發現是MigrationHelper.java類中的restoreData()方法報錯,如下圖:
image
錯誤原因就是int類型數據在數據庫中不能為null,所有我們在拼接sql語句的時候給int類型初始化一個默認值0,就可以完美解決這個問題,修改后的restoreData()方法如下圖:
image