Я использовал этот пример для создания базы данных, которую я копирую при новой установке
http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/
Проблема, с которой я столкнулся сейчас, состоит в том, что я сделал некоторые обновления базы данных иЯ предположил, что я также делаю эти обновления для мастер-файла в сборке, чтобы пользователи всегда получали наибольшую версию обновлений при новой установке
У меня есть другой класс, который обрабатывает все операторы запросов вызовов db.
Я установил эту строку
private static final int DATABASE_VERSION = 5;
При новой установке теперь база данных копируется корректно, но когда класс запроса снова вызывает помощник базы данных, вызывается метод onupgrade () и пытается выполнить обновление допоследняя версия и приложение вылетает, когда оно пытается выполнить обновления, которые не могут быть выполнены
Я понял, что нижеприведенная версия базы данных установлена при новой установке или это неправильно.Если да, то как мне установить версию базы данных для новых установок
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, DATABASE_VERSION);
this.context = context;
}
только для полноты картины. Вот пример onupgrade ()
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
dbUpgrade = new DatabaseUpgrades(context);
Log.d(DEBUG_TAG, "Calling onupgrade db");
Log.d(DEBUG_TAG + " : " + DatabaseHelper.class.getName(),
"Upgrading database from version " + oldVersion + " to "
+ newVersion);
if (oldVersion == 1) {
Log.d(DEBUG_TAG, "Updating to Version 2");
dbUpgrade.upgradeDB2(db);
oldVersion++;
}
}
. Вопрос о том, какая версия нового набора баз данныхна новую установку и как вы можете перезаписать его, если он не версии 5
Спасибо