在更新时部署的Android应用程序上升级数据库

时间:2015-11-11 08:11:38

标签: java android database sqlite upgrade

我在Play商店部署了一个应用程序。我使用SQLite数据库。 Play商店中的应用程序有db版本3.现在对于即将发布的更新,我想在数据库中向表中添加另一列,所以我要将db版本增加到4.我在onUpgrade中创建了这个逻辑( ) 方法。我只是想知道你是如何找到它的,你是如何解决这种情况的,甚至是像db版本5那样的进一步更新。我只想得到你的意见。非常感谢。

public static final String PARAM_NAME = "java.lang.String";

3 个答案:

答案 0 :(得分:3)

我更喜欢这种方式,因为它简洁明了:

public void onUpgrade(final SQLiteDatabase db, int oldVersion, int newVersion) {

    if (oldVersion < 2){
    // Upgrade from V1 to V2
    }

    if (oldVersion < 3){
    // Upgrade from V2 to V3
    }

    if (oldVersion < 4){
    // Upgrade from V3 to V4
    }

}

使用此功能,数据库将逐步升级。

答案 1 :(得分:1)

  

更改db版本和检查列存在于onUpgrade

中的表中
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
    Cursor cursor = arg0.rawQuery("select * from TABLE_NAME", null);
    int newcolumn = cursor.getColumnIndex("NEWLY_ADDED_COLUMN_NAME");
    if (newcolumn == -1) {
        arg0.execSQL("ALTER TABLE TABLE_NAME ADD COLUMN NEWLY_ADDED_COLUMN_NAMEtext");
    }
}

答案 2 :(得分:0)

这是一个很好的方法。

public void onUpgrade(final SQLiteDatabase db, final int oldVersion, final int newVersion)
{
    int upgradeTo = oldVersion + 1;
    while (upgradeTo <= newVersion)
    {
        switch (upgradeTo)
        {
            case 5:
                db.execSQL(SQLiteSet.V5_ADD_LAST_CARD);
                db.execSQL(SQLiteCard.V5_ADD_FAILED);
                break;
            case 6:
                db.execSQL(SQLiteSet.V6_ADD_IMPORT_TYPE);
                break;
            case 7:
                db.execSQL(SQLiteSet.V7_ADD_SHORT_FNAME);
                break;
        }
        upgradeTo++;
    }
}

initial post

相关问题