it is the first time that I need to change database structure of my app (that has been already published on Google play). This is my database class:
public class Database extends SQLiteOpenHelper {
    private static final String DB_NAME = "db";
    private static final int DB_VERSION = 1;
    public Database(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
        String table = "CREATE TABLE users(";
        table += "_id TEXT PRIMARY KEY,";
        table += "name TEXT NOT NULL,";
        table += "surname TEXT NOT NULL,";
        table += "details TEXT);";
        String table2 = "CREATE TABLE favorite(";
        table2 += "id TEXT PRIMARY KEY);";
        String table3 = "CREATE TABLE documents(";
        table3 += "id TEXT PRIMARY KEY,";
        table3 += "text TEXT NOT NULL,";
        table3 += "username TEXT REFERENCES users(_id));";
        String table4 = "CREATE TABLE average(";
        table4 += "user TEXT PRIMARY KEY,";
        table4 += "document INTEGER NOT NULL,";
        table4 += "avg REAL NOT NULL);";
        db.execSQL(table);
        db.execSQL(table2);
        db.execSQL(table3);
        db.execSQL(table4);
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }
}
I have added the following table:
String table5 = "CREATE TABLE categories(";
table5 += "source TEXT PRIMARY KEY,";
table5 += "parent TEXT,";
table5 += "sub TEXT NOT NULL);";
and then add this:
db.execSQL(table5);
So now, what have i to add in onUpgrade method to make users have the updated database on their device? Sorry if it could be a dumb question, but I'm not sure to be able to do that and I want to feel safe about making users to get the right structure in the new version of the app.
 
     
     
    