Выбор ответа Middle Room и хранение данных спрашивают часто обновлено
Room без миграции
Вопрос
Разработчик добавил колонку в @Entity и увеличил version с 1 до 2, но миграцию не написал. Что произойдёт у пользователя с версией 1?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Упадёт с IllegalStateException при открытии базы. Room не знает, как перевести данные из старой схемы, и при открытии базы бросит исключение о недостающей миграции.
Варианты ответа
- Room сам добавит колонку со значением по умолчанию
- Данные удалятся, и база создастся заново по новой схеме
- Упадёт с
IllegalStateExceptionпри открытии базыправильный ответ - Новая колонка будет игнорироваться, пока не придут данные
Разбор
Room не знает, как перевести данные из старой схемы, и при открытии базы бросит исключение о недостающей миграции. Удаление и пересоздание происходит, только если явно включить fallbackToDestructiveMigration(). Автоматически колонку добавят только автомиграции, если их объявить в @Database(autoMigrations = ...).
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.