-
[Android] Room cannot verify the data integrityLANGUAGE/ANDROID 2021. 5. 18. 11:52
새로운 기능 개발 하는 도중에 새로 추가한 DB 구조르 변경해야 할 경우가 생긴다.
그럴때 만날 수 있는 에러가 아래와 같다.
java.lang.IllegalStateException: Room cannot verify the data integrity. Looks like you've changed schema but forgot to update the version number. You can simply fix this by increasing the version number. 해결 방법으로는 버전명을 올리고 fallbackToDestructiveMigration() 를 사용하는 방법이 있다.
하지만 개인적으로 새로운 기능에 들어가는 부분이라 버전 정보를 올리고 싶지 않은 마음이 있었다.
그래서 우선 왜 충돌이 나는지 찾아봤다.
allowBackup
AndroidManifests 파일의 application 태그를 보면
allowBackup의 값이 default로 true로 되어 있다.
true이면 앱을 삭제하거나 설정에 들어가서 데이터/캐시 지우기해도 데이터베이스 정보가 남아있다.
안드로이드 6.0부터는 앱을 삭제해도 구글 드라이브에 데이터베이스를 백업을 한다.
공식 사이트에 자세한 설명이 나와 있다.
이것을 토대로 구글 드라이브 앱에서 백업 데이터를 삭제를 하고 테스트 해보니 에러 없이 정상적으로 실행되었다.
결론
개발 도중 신규 DB 기능을 수정 과정에서 버전 정보를 올리고 싶지 않다면
구글 드라이브 앱에서 백업 데이터를 삭제하자
'LANGUAGE > ANDROID' 카테고리의 다른 글
[Android] java.lang.IllegalArgumentException: Service not registered: com.google.android.gms.measurement.internal.zzji@xxx (0) 2020.10.16 [Android] Webview Geolocation 사용하기 (0) 2020.08.24 외부 라이브러리 추가시 AndroidManifest.xml 병합 (0) 2020.07.08 [Kotlin] object 익명 클래스, 무명 객체 [anonymous object] 에서 View 접근하기 (0) 2020.06.19 FCM Android Backgroud (feat. app launch) (0) 2019.07.26