我有一个拥有数据库的应用程序 现在我想发布新版本的应用程序 但我的数据库添加了新字段 我希望将旧数据保存在数据库中,并添加带有其他字段的新数据库
我的数据库是否会被覆盖(我将丢失我的数据副本)或将添加新的数据库
答案 0 :(得分:0)
专注于 onUpgrade 方法: - )
public class WIMProvider extends ContentProvider {
private static final int DATABASE_VERSION = 2;
private DatabaseHelper mOpenHelper;
// ..... code .....
private static class DatabaseHelper extends SQLiteOpenHelper {
private Context mContext;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
mContext = context;
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion == 1) {
db.execSQL("ALTER TABLE TCategory ADD COLUMN fiDefault integer DEFAULT 0");
oldVersion++;
}
if (oldVersion == 2) {
db.execSQL("ALTER TABLE TCategory ADD COLUMN fsIcon nvarchar(50)");
oldVersion++;
}
}
}