Как отключить Android Room от управления схемой?
Я новичок в Android Room. Я хотел бы использовать его для чтения и записи в мою базу данных Sqlite. Я НЕ хочу, чтобы он управлял схемой (создавал / переносил таблицы).
Во-первых, я еще не полностью продан в Android Room, поэтому я не хочу связываться с ним, заставляя его управлять моей схемой.
Во-вторых, я предпочитаю полный контроль над схемой.
В настоящее время я получаю исключение Room при запуске приложения. Я предполагаю, что это потому, что Android Room встречает мою существующую схему.
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.
Как остановить Android Room от создания / переноса таблиц?
2 ответа
Если вы измените схему базы данных, например, сущность или что-то еще, вы должны увеличить версию здесь:
@Database(entities = {Person.class, Product.class}, version = 2)
Вот и все.
С другой стороны, если эта проблема беспокоит вас в режиме разработки, просто удалите / установите приложение, и ошибка исчезнет. Или просто очистите данные приложения в настройках.
В других случаях вам приходится управлять миграциями.
Надеюсь, это поможет.
Я думаю, что вы хотели бы остановить автоматическое создание базы данных Shema:
@Database(entities = {Person.class, Product.class}, version = 2, exportShema = false)