我开发了一个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,并且数据库的版本与旧版本不同 .
您可以在 SQLiteOpenHelper#onUpgrade 上执行一些操作,获取一些旧数据 . 并插入新表
SQLiteOpenHelper#onUpgrade
更改db版本并在 onUpgrade(SQLiteDatabase db, int oldVersion, int newVesion) 方法中添加额外的两个表创建方法 . 现在以前的数据不会丢失 .
onUpgrade(SQLiteDatabase db, int oldVersion, int newVesion)
我希望这能帮到您 .
3 回答
您应该在onUpgrade方法中放置所有更改,您可以使用此代码:
这会在当前数据库中添加一列 . 您的数据库不会丢失数据 . 提醒:执行getWriteableDatabase或getReadableDatabase时将调用onUpgrade,并且数据库的版本与旧版本不同 .
您可以在
SQLiteOpenHelper#onUpgrade
上执行一些操作,获取一些旧数据 . 并插入新表更改db版本并在
onUpgrade(SQLiteDatabase db, int oldVersion, int newVesion)
方法中添加额外的两个表创建方法 . 现在以前的数据不会丢失 .我希望这能帮到您 .