更新应用程序时是否删除了数据库?

时间:2010-10-27 18:41:22

标签: android database google-play

我在我的应用程序使用的数据库中添加了一个表,并编写了一些代码来处理该表。我的手机和模拟器上的所有功能都很好,所以我将更新发送到了市场。

这导致我在开发人员控制台中收到相当多的堆栈跟踪原因

android.database.sqlite.SQLiteException: no such table: flag

(flag是新表)。

这让我想知道,在更新应用程序时是否删除了数据库?目前在我的应用程序中,我正在查看数据库是否存在,如果存在,那么我不会重新创建它。

在发送更新之前我没有抓到这个,因为我在上传调试版之前卸载了应用程序。

我已经推出了一个快速更新,在所有对新表的访问中都有一个try catch块(我知道,首先应该在那里,我知道)。

2 个答案:

答案 0 :(得分:4)

不会删除用户数据,包括数据库。

您的数据库有版本号。更新应用程序时,会提前更新版本号,以便检测当前的“旧”数据库。

这可用于触发迁移例程。在您的情况下,它应该已向数据库添加新表。

答案 1 :(得分:0)

SQLiteOpenHelper就是答案。