我在我的安卓项目中使用GreenDAO。我在GreenDAO中看到了一个问题。每当我对现有表进行更改并更改版本以迁移更改时,GreenDAOis就会删除所有表。我试图对GreenDAOgenerated文件进行更改,但这并不是正确的过程,但是它没有工作。
@Override
public void onUpgrade(Database db, int oldVersion, int newVersion) {
Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables");
dropAllTables(db, true);
onCreate(db);
}我试着在上面的代码中注释dropAllTables --它没有工作,代码在运行时正在重新生成吗?有人知道怎么修吗?
编辑:
我几乎没有看到与这个问题有关的问题,但这些问题都是老生常谈,对我没有帮助。
发布于 2016-11-21 03:50:56
您可以扩展DaoMaster.DevOpenHelper并提供自己的onUpgrade实现。
实现您自己的DevOpenHelper
public class MyOpenHelper extends DaoMaster.DevOpenHelper {
//..
//override the constructor here by calling super
//..
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
switch(oldVersion) {
case 1:
//upgrade logic from version 1 to 2
/* break was omitted by purpose. */
case 2:
//upgrade logic from version 2 to 3
/* break was omitted by purpose. */
case 3:
//upgrade logic from version 3 to 4
break;
default:
throw new IllegalStateException(
"unknown oldVersion " + oldVersion);
}
}
}实例化类
DaoMaster.DevOpenHelper helper = new MyOpenHelper(this, databaseName, null);
SQLiteDatabase db = helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(db);有关更多细节,请看一下我是如何做到的,这里。
https://stackoverflow.com/questions/40691277
复制相似问题