Я получаю проблему. В таблице нет такой таблицы "table_name" в моем загруженном приложении после обновления версии приложения. Я вышел после тестирования. Я получаю эту проблему только после обновления старой версии приложения до новой версии приложения.
Что я реализовал
Я сделал код в методе onUpgrade(), а также обновил версию db в конструкторе, но не смог проверить его на устройстве.
шаг 1) Увеличить код версии от 1 до 2
public databasehelper(Context context) {
super(context, DATABASE_NAME, null, 2);
this.myContext = context;
try {
createDataBase();
openDataBase();
} catch (IOException e) {
e.printStackTrace();
}
}
Шаг 2) добавила новую таблицу в метод onUpgrade()
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.e("onUpgrade db", ">>>>called");
switch (oldVersion) {
case 1:
db.execSQL(DATABASE_CREATE_notification_counter);
Log.e("db version", ">>>"+oldVersion);
// we want both updates, so no break statement here...
case 2:
Log.e("db version", ">>>"+oldVersion);
// I removed onCreate() method from here because new version will already have the new table
// onCreate(db);
}
}
Шаг 3) метод onCreate() для новой версии базы данных.
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE_notification_counter);
Log.d("oncreate db", ">>>>called");
}
У меня есть решение для обновления базы данных link1 link2 link3 link4
Почему я не смог его протестировать
мы загрузили платное приложение в игровой магазин, поэтому мне нужно протестировать метод обновления db в эмуляторе или устройстве, используя два разных apk - более старую версию и более новую версию. и я сначала тестировал устройство, используя старую версию, а затем новую версию (изменения db с добавленной новой таблицей в db), но метод onUpgrade() не будет вызываться в это время.
Вопрос:
1) Как я могу протестировать обновление db перед обновлением новой версии на магазин игр?
2) Он вызывается только при обновлении версии из магазина воспроизведения только?
Пожалуйста, помогите мне решить эту проблему.
Ответы будут оценены. Спасибо заранее.