我开发了一个安卓应用并发布了 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。
关于Android SQLite 数据库和应用更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16890774/