Возможно, будет немного раньше спросить, но возможно ли это, и как перенести/обновить существующее приложение базы данных SQLite в новую библиотеку Android Room Persistance?
Как перенести существующее приложение SQLite в библиотеку Room Persistance?
Ответ 1
Предполагая, что ваши объекты комнаты соответствуют вашим текущим схемам таблиц, вы можете использовать одну и ту же базу данных/таблицы.
Комната управляет главной таблицей, которая инициализируется при создании или обновлении базы данных, поэтому вам нужно увеличить вашу версию базы данных и предоставить фиктивную миграцию:
@Database(entities = SomeEntity.class, version = EXISTING_VERSION + 1)
public class MyDatabase extends RoomDatabase {
// ...
}
MyDatabase db = Room.databaseBuilder(context, MyDatabase.class, "db_name")
.addMigrations(new Migration(EXISTING_VERSION, EXISTING_VERSION + 1) {
@Override
public void migrate(SupportSQLiteDatabase database) {
// NOOP
}
}).build();
Ответ 2
Для тех, кто интересуется, существует ли какой-либо способ перехода с SQLite
на Room
даже если ваша схема не совпадает, ответ - ДА, вы можете перейти с SQLite
на Room, даже если схема не совпадает.
Это возможно, но требует довольно осторожных преобразований. Поскольку этот процесс требует так много шагов, я просто оставлю ссылку, которой вы можете следовать.
Справочник по переходу с SQL на номер
Инкрементальный переход с SQLite на Room
Надеюсь, это будет полезно для немногих.