lundi 4 mai 2015

Android Upgrade SQLiteDatabase

I have a problem upgrading SQLiteDatabase on Android.

Could you help me?

//DBHelper
public class LaserSignDbHelper extends SQLiteOpenHelper{

public static final String DATABASE_NAME = "laser_languages.db";

public static final int DATABASE_VERSION = 3;

public static final String CREATE_QUERY = "CREATE TABLE " + LaserSignDB.DbInfo.TABLE_NAME +
        " ( " + LaserSignDB.DbInfo.NAME + " TEXT, " + LaserSignDB.DbInfo.DESCRIPTION + " TEXT, "
        + LaserSignDB.DbInfo.ACCEPT + " TEXT, " + LaserSignDB.DbInfo.DECLINE + " TEXT);";

Constructor

public LaserSignDbHelper(Context context){

    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

onCreate method

public void onCreate(SQLiteDatabase db) {

    db.execSQL(CREATE_QUERY);

    ContentValues enValues = new ContentValues();

    enValues.put(LaserSignDB.DbInfo.NAME, LaserSignDB.DbTags.EN);

    enValues.put(LaserSignDB.DbInfo.DESCRIPTION, LaserSignDB.DbDescriptions.EN);

    enValues.put(LaserSignDB.DbInfo.ACCEPT, LaserSignDB.DbAccepts.EN);

    enValues.put(LaserSignDB.DbInfo.DECLINE, LaserSignDB.DbDeclines.EN);

    db.insert(LaserSignDB.DbInfo.TABLE_NAME, null, enValues);
}

onUpgrade method: I want to upgrade my table with new informations added in the abstract class DbInfo

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

    db.execSQL("DROP TABLE IF EXISTS " + LaserSignDB.DbInfo.TABLE_NAME);

    onCreate(db);

}

Aucun commentaire:

Enregistrer un commentaire