Android Room迁移预加载的数据库

时间:2019-03-11 17:13:06

标签: android database migration

我正在使用openHelperFactory方法将本地数据库预加载到Room中,以从资产文件夹(这是一个只读数据库)中写入数据库。现在,我更改了一些数据(结构保持不变),并且尝试进行迁移以获取新数据,但到目前为止没有成功。我记得在某处读到这种情况下需要全部进行空迁移,但这种方法不起作用。

这是即时消息创建数据库的方式

@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扩展了RoomDatabase {

public abstract TaxCountryDao taxCountryDao();

}

有什么想法可以通过迁移获得新内容吗?选项2是删除当前数据库,并让资产腾出空间。

0 个答案:

没有答案