根据此堆栈溢出greenDao架构升级
"DiscDev"回答了他自己的问题,但我有一个问题,关于以下代码的onUpgrade方法:
if(oldVersion == 3 && newVersion == 4){
boolean ifNotExists = false;
//Leave old tables alone and only create ones that didn't exist
//in the previous schema
NewTable1Dao.createTable(db, ifNotExists);
NewTable2Dao.createTable(db, ifNotExists);
NewTable3Dao.createTable(db, ifNotExists);
NewTable4Dao.createTable(db, ifNotExists);
} else {
dropAllTables(db, true);
onCreate(db);
}
旧版本和新版本的数字他怎么知道旧版本是3,新版本是4?为什么它需要硬代码而不是常量的声明?
oldVersion和newVersion由OpenHelper onUpgrade方法提供。它提供oldVersion作为用户数据库的当前版本,newVersion作为用户当前升级到的版本。
您可以在绿色dao生成器中设置当前版本,也就是newVersion。
public static void main(String[] args) throws Exception {
int currentVersion = 4;
Schema schema = new Schema(currentVersion, "com.example.app.model.generated");
new DaoGenerator().generateAll(schema, "app/src/main/java/");
}