一,修改Entity类,升级database的version,添加Migration对象用于升级
static final Migration MIGRATION_1_2 = new Migration(1, 2) {
@Override
public void migrate(@NonNull SupportSQLiteDatabase database) {
database.execSQL("alter table MptModel add column isInternal INTEGER not null default 0");
database.execSQL("alter table MptModel add column internalScopes TEXT");
database.execSQL("delete from MptModel");
}
};
ScopeAuthorizeDatabase database = Room
.databaseBuilder(ContextUtils.getApplicationContext(),
ScopeAuthorizeDatabase.class, dbPath)
.addMigrations(MIGRATION_1_2)
.build();
二,为确保迁移成功,必须要做单元测试
根据本人亲身体验,强烈建议编写单元测试
单元测试可以尽可能多地测试各种场景,而且及时反馈,不仅降低出bug的可能,还提升了开发效率。
1,导出架构,添加以下配置,在编译时ro