相关疑难解决方法(0)

更改SQLite数据库版本号

我有一个我在SQLite浏览器中构建的数据库,它工作正常.我推出了一个带有预建数据库的应用程序,现在我想向该数据库添加更多表和数据.

我可以让应用程序启动SQLiteOpenHelper的onUpgrade方法.但问题是,每次使用帮助器时都会这样做.

我已将其本地化,仅在应用程序启动时,从我用于检索数据的帮助程序中分离升级命令,但这仍然是一个问题.

我已经弄清楚了,因为我从版本1开始在我的计算机上使用相同的数据库(我正在编辑的那个).所以,每当它将新的数据库写入SD卡时它就会显示版本1,即使我应该到现在为止版本4.

所以,我的问题是,如何手动编辑原始数据库的数据库版本,以便在更新时不是在新版本上编写旧版本号?

sqlite android version

35
推荐指数
3
解决办法
3万
查看次数

如何直接从.db文件检查数据库版本

我有一个关于免费应用程序的困境,我允许用户将他们的数据(SD卡上的sqlite文件)导入付费应用程序.

完成这些更新后; 我意识到如果我需要对数据库进行未来的更改,用户将需要将相同的数据库版本(从免费应用程序)导入到现有版本(付费应用程序).

真人生活的例子:

假设两个应用的版本1都有1个包含5列的表.我升级到v2,现在1个表有6列.

当潜在用户在付费应用程序中导入以从免费应用程序引入数据时,免费应用程序可能在数据库版本1上(如果用户最近未更新应用程序),而付费应用程序将是寻找数据库版本2.我认为这会导致启动时崩溃.

如何在导入之前在付费应用中进行这样的检查:(伪代码)

File olddb = oldDb.db; // get the back up file here from SD
int piadAppDBVersion = 2; // check for the current version of the database in paid app

if (olddb.getDatabaseVersion() == getPaidAppDBVersion()) { // made up functions
 // allow import;
} else {
 // Toast "Your databases are incompatible"
}
Run Code Online (Sandbox Code Playgroud)

所以这两个问题:1.如果上面的代码是确保兼容性的适当解决方案,那么如何做到这一点?2.如果以上不是我问题的标准解决方案,那么是什么?

附注:我的导入包含一个简单的文件副本:在外部存储上复制后备数据库并覆盖内部存储上的数据库.

sqlite android

3
推荐指数
1
解决办法
5067
查看次数

Android通过shell检查SQLite数据库版本?

关注这个问题有没有办法通过adb shell检查应用程序的当前数据库版本?另外,我如何查看user cookie问题中提到的字段?

database sqlite android

2
推荐指数
1
解决办法
1696
查看次数

标签 统计

android ×3

sqlite ×3

database ×1

version ×1