Комната не может проверить целостность данных, но у меня включена деструктивная миграция - PullRequest
0 голосов
/ 25 октября 2019

Я получаю ошибку от Room IllegalStateException с трассировкой, что «Комната не может проверить целостность данных», поскольку я изменил значение в db с не обнуляемого на nullable, но мои настройки дб следующие:

@JvmStatic
@Provides
@ApplicationScope
fun provideRoomDatabase(context: Application): MyDb = Room.databaseBuilder(
    context,
    MyDb::class.java, DB_NAME
).fallbackToDestructiveMigration().build()

В чем может быть проблема с этим?

1 Ответ

1 голос
/ 25 октября 2019

Увеличили ли вы версию базы данных после внесения изменений? Поскольку он воссоздает базу данных, но иногда он все еще использует старую схему, поэтому, увеличивая версию, вы можете исправить свое исключение. Вы также можете проверить это в документации здесь Миграция помещения

После обновления схем вашей базы данных, возможно, что некоторые базы данных на устройстве все еще могут использовать более старую версию схемы. Если Room не может найти правило миграции для обновления базы данных этого устройства с более старой версии до текущей версии, возникает исключение IllegalStateException.

...