Greendao数据库升级
1、新建 GDOpenHelper 类
public class GDOpenHelper extends DaoMaster.OpenHelper{ public GDOpenHelper(Context context, String name) { super(context, name); } @Override public void onUpgrade(Database db, int oldVersion, int newVersion) { //把需要管理的数据库表DAO作为最后一个参数传入到方法中 MigrationHelper.migrate(db, new MigrationHelper.ReCreateAllTableListener() { @Override public void onCreateAllTables(Database db, boolean ifNotExists) { DaoMaster.createAllTables(db, ifNotExists); } @Override public void onDropAllTables(Database db, boolean ifExists) { DaoMaster.dropAllTables(db, ifExists); } }, TestDao.class); } }
2、替换原有greendao数据创表语句
a:原有代码
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "test-db" , null);
SQLiteDatabase database = helper.getWritableDatabase();
mDaoSession = new DaoMaster(database).newSession();
b:更换后代码
GDOpenHelper gdOpenHelper = new GDOpenHelper(context, "sq-db");//建库 mDaoSession = new DaoMaster(gdOpenHelper.getWritableDatabase()).newSession();
3、数据升级时,使用国外大神写的库,如下。
implementation 'com.github.yuweiguocn:GreenDaoUpgradeHelper:v2.1.0'