У меня небольшая проблема с обновлением базы данных sqlite.Сейчас я использую это:
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w("","UPGRADE DATABASE : "+" oldVErsion : "+oldVersion+" newVersion : "+newVersion);
switch(newVersion){
case 2:
Log.w("","UPGRADE DATABASE : "+newVersion);
db.execSQL("ALTER TABLE collection_lang ADD COLUMN bonus_text VARCHAR(200)");
db.execSQL("ALTER TABLE collection_lang ADD COLUMN quantity integer");
case 3:
Log.w("","UPGRADE DATABASE : "+newVersion);
db.execSQL("ALTER TABLE users ADD COLUMN firstName varchar(70)");
db.execSQL("ALTER TABLE users ADD COLUMN lastName varchar(70)");
db.execSQL("ALTER TABLE users ADD COLUMN user varchar(70)");
}
}
Это работает, если у вас уже есть приложение, установленное с самого начала ... но если вы установите его сейчас, оно будет выполнять запросы только в case 3
, потому чтотекущая версия 3.
Мне нужно найти способ запуска запросов с самого начала .. если моя последняя версия базы данных - 5, я хочу сначала запустить случай 2, чем случай 3, чем 4и в последнем случае 5. Так что мне не нужно будет писать все запросы с самого начала, потому что это приведет к сбою для старых пользователей.
Есть идеи, как этого добиться?