Android Room перенести предварительно загруженную базу данных - PullRequest
0 голосов
/ 11 марта 2019

Я предварительно загружаю свою локальную БД в 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 будет состоять в том, чтобы удалить текущую базу данных и освободить место из ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...