Android Rajaganapathi
Android Rajaganapathi

Reputation: 225

Room cannot verify the data integrity. Looks like you've changed schema but forgot to update the version number

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.

I know that I can fix this issue by increasing the version number.

I m working in a project which has lots and lots of Database works. There is a chance that I may need to change the database structure at least 50 times a day. So daily I have to increase the number by 50 or more.

If I miss to increase(if by chance) I get the above error.

I have tried .fallbackToDestructiveMigration() and exportSchema = false with some suggestion from internet surfing.

Do any of you provide me proper solution for this.

Upvotes: 10

Views: 11856

Answers (4)

Abdulbasit
Abdulbasit

Reputation: 11

I also had this error. I solved this problem by turning off room impelentations in build gradle and then enabling room again and running the program and it worked

If you don't believe it, try it

Upvotes: 1

Nikson Daniel
Nikson Daniel

Reputation: 1

Just Uninstall and reinstall the application in Emulator or in Mobile... This helped...

Upvotes: 0

Alex Xiao
Alex Xiao

Reputation: 53

I see that almost all the answers to the issue about .fallbackToDestructiveMigration()have overlooked an important point.

We not only add ".fallbackToDestructiveMigration()" before build() like this

Room.databaseBuilder(context.applicationContext,AppDatabase::class.java,"app_database")
            .fallbackToDestructiveMigration()
            .build()

But also need upgrade your database version in your code.like this

// before upgrade
@Database(version = 1,entities = [User::class])
// after upgrade
@Database(version = 2,entities = [User::class]) 

Only finish these two steps can you solve the following issue.

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.

Upvotes: 3

Badhrinath Canessane
Badhrinath Canessane

Reputation: 3518

Having .fallbackToDestructiveMigration() is not a great option, as it may lead to data loss when you perform an actual migration in the future (after releasing it to the world).

Go to App Info -> Storage -> Clear storage. This will clear all the data and solve your problem.

Uninstall and reinstall will help only if you have set android:allowBackup="false" under your manifest. I recommend reading the docs regarding this: https://developer.android.com/guide/topics/data/autobackup

Note: Don't change the schema version number for dev/debug build purposes.

Upvotes: 12

Related Questions