0

根据这个堆栈溢出 greenDao Schema 升级

家伙“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?还有为什么它需要是硬代码而不是常量的声明?

4

1 回答 1

0

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/");
}
于 2016-04-06T00:53:23.447 回答