我已经开发了一个Android应用程序,并发布了1.0版。该应用程序包含具有5个表的SQLite本地数据库。

现在我们计划发布2.0版,同时也更新了1.0版用户。在2.0版中,我们在前5个表中增加了两个表,因此现在增加了7个表。

现在我的问题是,1.0版用户在本地数据库中都有一些数据,如果他更新到2.0版,以前的数据会丢失吗?如果是这样。那么什么是替代方法?

最佳答案

您应该将所有更改都放在onUpgrade方法中,您可以使用以下代码:

@Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    String sql = "ALTER TABLE " + TABLE_SECRET + " ADD COLUMN " +
     "name_of_column_to_be_added" + " INTEGER";
    db.execSQL(sql);
}

这将在当前数据库中添加一列。您的数据库不会丢失数据。提醒:当执行getWriteableDatabase或getReadableDatabase并且数据库版本与旧版本不同时,将调用onUpgrade。

07-26 09:42
查看更多