dbflow (v4+) の移行スクリプトを書きたいと思っています。以前のテーブルをすべて削除してから、すべてをゼロから構築したいと考えています。現在、これを実行できることがわかった唯一の方法は次のとおりです。
@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());
}
}
}
ただし、古いテーブルと新しいテーブルをすべて手動で言及する必要があるため、このアプローチは好きではありません。それを行うより良い方法はありますか?私のデータベースは大幅に変更されたため、すべてのテーブルを削除することが唯一の選択肢のようです。