Я предварительно загружаю свою локальную БД в Room, используя метод openHelperFactory, чтобы записать БД из папки активов (это база данных только для чтения). Теперь я изменил некоторые данные (структура остается прежней), и я попытался выполнить миграцию, чтобы получить новые данные безуспешно. Я помню, как читал где-то, что для этого случая требовалась пустая миграция, но она не работает.
Вот как я создаю БД
@Singleton
@Provides
public LocalDatabase provideLocalDatabase(Context context) {
return Room.databaseBuilder(context, LocalDatabase.class,
DatabaseConstants.LOCAL_DB)
.openHelperFactory(new AssetSQLiteOpenHelperFactory())
.allowMainThreadQueries()
.addMigrations(LocalDatabaseMigration.MIGRATION_2_3)
.build();
}
Это пустая миграция
public static final Migration MIGRATION_2_3 = new Migration(2, 3) {
@Override
public void migrate(SupportSQLiteDatabase database) {
}
};
БД
@Database(entities = {TaxCountryEntity.class}, version = 3, exportSchema = false)
открытый абстрактный класс LocalDatabase extends RoomDatabase {
public abstract TaxCountryDao taxCountryDao();
}
Есть идеи, как я могу получить новый контент через миграции? Вариант 2 будет состоять в том, чтобы удалить текущую базу данных и освободить место из ресурсов.