7

我有一个带有 3 个表的 sqlite 的应用程序。我担心的是,如果我引入一个添加另一个表(所以是 4 个表)的更新,那么更新的版本将清除数据库。

鉴于备份发生在更新之前和更新之后的恢复,我如何备份/恢复数据库?如果我使用 IO 进行操作(复制到 SD 卡并复制回来),那么它将失败。

我可能正在考虑将数据导出到 xml 并手动加载。还有其他方法吗?关于如何做到这一点的任何例子?

4

1 回答 1

4

onUpgrade()如果您只是想添加一个新表,请在您的方法中注释掉 DROP TABLE 命令。您可以完全控制其中的代码,onUpgrade()因此它可以是:

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("CREATE TABLE ...");
}

从技术上讲,您甚至不需要增加数据库版本,只要您可以访问副本,db就可以执行您的 CREATE 语句。

于 2012-11-24T02:52:34.627 回答