GreenDaoUpgradeHelper

简介:To solve database upgrade of greenDao and just need one line code
更多:作者   提 Bug   
标签:

Release Download

GreenDaoUpgradeHelper is a database upgrade helper for greenDao.Use GreenDaoUpgradeHelper can easy solve database upgrade that's just need one line code.

The original code is from stackoverflow.

How to use

1.Add it in your root build.gradle at the end of repositories:

    allprojects {
        repositories {
            ...
            maven { url "https://jitpack.io" }
        }
    }

2.Add the dependency(greendao 3.0 above)

    dependencies {
            compile 'org.greenrobot:greendao:3.2.0'
            compile 'com.github.yuweiguocn:GreenDaoUpgradeHelper:v2.0.0'
    }

or (greendao 3.0 below)

    dependencies {
            compile 'de.greenrobot:greendao:2.0.0'
            compile 'com.github.yuweiguocn:GreenDaoUpgradeHelper:v1.0.1'
    }

3.Add a new class that extends DaoMaster.OpenHelper,add a constructor,implement onUpgrade method and called migrate method,arguments is all of generated Dao class:

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);
            }
        },TestDataDao.class, TestData2Dao.class, TestData3Dao.class);

like this:

public class MySQLiteOpenHelper extends DaoMaster.OpenHelper {
    public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory) {
        super(context, name, factory);
    }
    @Override
    public void onUpgrade(Database db, int oldVersion, int newVersion) {
        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);
                    }
                },TestDataDao.class, TestData2Dao.class, TestData3Dao.class);
    }
}

4.Finally,init like this:

//MigrationHelper.DEBUG = true;  //if you want see the log info,default is false
MySQLiteOpenHelper helper = new MySQLiteOpenHelper(this, "test.db",
                null);
        daoMaster = new DaoMaster(helper.getWritableDatabase());

Thanks

greenDAO

Pedro Okawa

Contact me

weibo:@于卫国

gmail:yuweiguocn@gmail.com

blog:yuweiguo's blog

License

Copyright 2016 yuweiguocn

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Android 开发经验分享
C 轮融资近 30 亿元理财推荐
Android 开发经验分享
C 轮融资近 30 亿元理财推荐