我正在使用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是删除当前数据库,并让资产腾出空间。