Я хочу заменить предыдущую базу данных новой базой данных. Для этого я являюсьЗамена базы данных sqlite в android
- Проверка предыдущей пользовательской_версии базы данных.
- Удаление старой базы данных.
- Копирование новой базы данных из активов.
- Изменение user_version новой базы данных.
- Верификация новый user_version в моем случае это 1.
Но когда я перезапустить user_version приложение снова изменено на 0. Почему это не спасение «1» в качестве нового user_version? Или я должен изменить user_version новой базы данных перед компиляцией приложения.
Вот мой код.
MySQLiteHelper db = MySQLiteHelper.instance();
int oldversion = db.getInteger("PRAGMA user_version");
Toast.makeText(MainActivity.this,oldversion + "", Toast.LENGTH_SHORT).show();
if (oldversion < 1) {
upgradeDB();// delete previous db and copy new one.
db.execSQL("PRAGMA user_version = 1");
int oldversion = db.getInteger("PRAGMA user_version");
Toast.makeText(MainActivity.this,oldversion + "", Toast.LENGTH_SHORT).show();
}
Редактировать
void upgradeDB(){
db.renameDataBase();
db.copyDataBase();
db = MySQLiteHelper.instance();
MySQLiteUpdateHelper dbOld = MySQLiteUpdateHelper.instance();
int saved = dbOld.getInteger("select value from info where name='saved'");
int bookmark = dbOld.getInteger("select value from info where name='bookmarks'");
db.execSQL("UPDATE info set value = '" + saved + "' WHERE name = 'saved'");
db.execSQL("UPDATE info set value = '" + bookmark + "' WHERE name = 'bookmarks'");
File to = new File(db.DB_PATH, "old");
if (to.exists()) {
to.delete();
}
}
Благодарим вас за знакомство с SQLiteAssetHelper. Но иногда мне нужно получить некоторые записи из старой базы данных. Странная вещь для меня - автоматическое возвращение user_version. Можете ли вы сказать мне, почему это происходит? – user934820
Как сохранить старые данные [другой вопрос] (http://stackoverflow.com/q/37094656/11654). В любом случае, неизмененный выглядит как ошибка в вашем коде. –
Если я изменяю user_version новой базы данных перед компиляцией приложения и удаляю db.execSQL («PRAGMA user_version = 1») ;. Было бы хорошо? – user934820