0
我想为dbflow(v4 +)编写一个迁移脚本。我想删除所有先前的表,然后从头开始构建所有内容。目前,只有我发现,我们可以做到这一点的方法是这样的:删除所有旧表并在dbflow中重新创建表
@Migration(version = 2, database = AppDatabase.class)
public static class Migration2 extends BaseMigration {
@Override
public void migrate(DatabaseWrapper database) {
ArrayList<ModelAdapter> modelAdapters = new ArrayList<>();
// Old tables
modelAdapters.add(FlowManager.getModelAdapter(Events.class));
modelAdapters.add(FlowManager.getModelAdapter(Notes.class));
// New table
modelAdapters.add(FlowManager.getModelAdapter(User.class));
for (ModelAdapter modelAdapter : modelAdapters) {
database.execSQL("DROP TABLE IF EXISTS " + modelAdapter.getTableName());
database.execSQL(modelAdapter.getCreationQuery());
}
}
}
我不喜欢这种方法,但正如我们不得不手动提所有的新老表。有没有更好的方法来做到这一点。我的db已经发生了很大的变化,因此删除所有表似乎是唯一的选择。
但有一个更简单的方法做到这dbFlow? –