我使用GreenDao 3.2.2我的DB,GreenDao - Android电子 - OnUpgrade不会被调用(加密的数据库)
在我第一次运行时创建实体通过@tags一切工作正常。
现在我编辑gradle这个架构以更高的版本,因为我加了一些道具,一个表:
greendao {
schemaVersion 4
}
然而OpenHelper onUpgrade
方法不会被调用,因此我的项目总是崩溃,因为一些列不找到。
应用类
//Init DB
UpgradeHelper helper = new UpgradeHelper(this, ENCRYPTED ? "db-encrypted" : "db", null);
Database db = ENCRYPTED ? helper.getEncryptedWritableDb("app-cipher") : helper.getWritableDb();
daoSession = new DaoMaster(db).newSession();
OpenHelper类
public class UpgradeHelper extends DaoMaster.OpenHelper {
public UpgradeHelper(Context context, String name, SQLiteDatabase.CursorFactory factory) {
super(context, name, factory);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//never gets called
Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion);
//do migrations
}
}
我这么想吗?
你有权访问创建的数据库?你可以用SQLiteStudio打开它吗? – MatPag
@MatPag是的,我可以 – htafoya
@MatPag PRAGMA user_version命令给出gradle和DaoMaster中定义的正确的SCHEMA_VERSION :(但是我的表没有更新到最新的方案 – htafoya