Выбор ответа Middle Room и хранение данных спрашивают часто обновлено

Room без миграции

Вопрос

Разработчик добавил колонку в @Entity и увеличил version с 1 до 2, но миграцию не написал. Что произойдёт у пользователя с версией 1?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Упадёт с IllegalStateException при открытии базы. Room не знает, как перевести данные из старой схемы, и при открытии базы бросит исключение о недостающей миграции.

Варианты ответа

  1. Room сам добавит колонку со значением по умолчанию
  2. Данные удалятся, и база создастся заново по новой схеме
  3. Упадёт с IllegalStateException при открытии базыправильный ответ
  4. Новая колонка будет игнорироваться, пока не придут данные

Разбор

Room не знает, как перевести данные из старой схемы, и при открытии базы бросит исключение о недостающей миграции. Удаление и пересоздание происходит, только если явно включить fallbackToDestructiveMigration(). Автоматически колонку добавят только автомиграции, если их объявить в @Database(autoMigrations = ...).

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.