我有一个带有3个表的sqlite的应用程序。我担心的是,如果我引入一个添加另一个表的更新(这样就是4个表),那么更新后的版本将消灭数据库。
如果备份在更新之前发生并且在更新之后恢复,我该如何备份/恢复数据库?如果我使用IO(复制到SD卡并复制回来),那么它将失败。
我在考虑将数据导出到xml并手动加载。还有另外一种方法吗?关于如何做的任何例子?
答案 0 :(得分:4)
如果您只想添加新表,请在onUpgrade()
方法中注释掉DROP TABLE命令。您可以完全控制onUpgrade()
中的代码,因此它可以是:
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("CREATE TABLE ...");
}
从技术上讲,您甚至不需要增加数据库版本,只要您有权访问db
的副本,就可以执行CREATE语句。