Мое приложение находится в режиме выпуска, и я использую базу данных комнаты, и моя предыдущая версия базы данных была 2 с включенным откатом к деструктивной миграции.
@Database(entities = {
User.class,ApplicationSetting.class},
version = 2,
exportSchema = false)
abstract public class DatabaseContext extends RoomDatabase {
private static final Object sLock = new Object();
private static DatabaseContext INSTANCE;
public static String DATABASE_NAME = AppConstants.DATABASE_NAME;
public static DatabaseContext getInstance(Context context) {
synchronized (sLock) {
if (INSTANCE == null) {
INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
DatabaseContext.class, DATABASE_NAME)
.fallbackToDestructiveMigration()
.build();
}
return INSTANCE;
}
}
Я добавил новый столбец в таблицу и изменил версию на3. Теперь я хочу обеспечить переход с версии 2 на версию 3, чтобы данные не терялись. Но я сбит с толку, потому что в версии 2 я включил аварийную деструктивную миграцию, а теперь в версии 3 я хочу сохранить пользовательские данные и удалить аварийное уничтожение.
Как мне этого добиться?