Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android SQLite onUpgrade not called

I have my database created in event onCreate, in which I have a lot of tables, but I need add 1 more table, and I can't lose any data, So I need to use the event onUpgrade, So I hope you guys help me because I don't know how to use it.

Example :

public void onCreate(SQLiteDatabase db) {
    sql = "CREATE TABLE IF NOT EXISTS funcionarios"
            +"(codigo INTEGER PRIMARY KEY, funcionario TEXT, apelido TEXT , functionTEXT, cartao TEXT , foto TEXT , tipo_foto TEXT);";  
    db.execSQL(sql);
}

what i need is

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    if(oldVersion < 2){
        db.execSQL("CREATE TABLE IF NOT EXISTS calibrar_aceleracao"+
                 "(limiteMaximo INTEGER, limiteMinimo INTEGER);");
    }
}

but it doesn't work.

thanks.

like image 364
user3009319 Avatar asked Dec 09 '25 20:12

user3009319


1 Answers

You do not need to change you applications version to update your database - not saying it is incorrect but there is a more efficient way of doing it. And that is through the use of the super's constructor of your helper it would look something like the following:

public class MyDatabaseHelper extends SQLiteOpenHelper {

    public MyDatabaseHelper(Context context) {
        super(context, "My.db", null, 1 /* This is the version of the database*/);
    }

    @Override
    public void onCreate(SQLiteDatabase database) {
        sql = "CREATE TABLE IF NOT EXISTS funcionarios (codigo INTEGER PRIMARY KEY, funcionario TEXT, apelido TEXT , functionTEXT, cartao TEXT , foto TEXT , tipo_foto TEXT);";  
        db.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
        if(oldVersion < 2){
             db.execSQL("CREATE TABLE IF NOT EXISTS calibrar_aceleracao (limiteMaximo INTEGER, limiteMinimo INTEGER);");
        }
    }
}
like image 109
Dark Eye Avatar answered Dec 11 '25 10:12

Dark Eye



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!