Коли ви вперше натрапили на це повідомлення, ви, швидше за все, будете працювати проти невипущеної версії бази даних. Якщо це так, швидше за все, вам не слід збільшувати версію бази даних . Просто очистивши дані програми, ви перемістите ви пройшли виняток.
Якщо ви не збільшуєте базу даних (рекомендується):
Ви повинні очистити дані додатка програми з налаштувань Android. Ви також можете видалити попередню версію програми, а потім встановити нову версію, щоб отримати передане виключення. Цей останній підхід не працює за певних умов (наприклад, коли дозволено резервне копіювання)
Оскільки очищення даних програми завжди працює, я щоразу йду цим шляхом.
Якщо ви збільшите версію бази даних:
Вам потрібно буде написати код міграції бази даних, щоб врахувати будь-які зміни в схемі бази даних. Див тут для отримання інформації про міграцію.
Альтернативою написанню коду міграції бази даних є виклик fallbackToDestructiveMigration
конструктора бази даних Room. Це, мабуть, не гарна ідея. Якщо ви забудете видалити цей дзвінок, а потім забудете оновити базу даних, це призведе до втрати даних.
// Using this fallback is almost certainly a bad idea
Database database = Room.databaseBuilder(context, Database.class, DATABASE_NAME)
.fallbackToDestructiveMigration()
.build();
Знову ж таки, ні збільшення версії бази даних, ні повернення до руйнівної міграції не потрібно, якщо попередня схема бази даних не живе в дикій природі .