Android数据库升级问题

时间:2011-12-30 06:31:47

标签: android sqlite

我有一个拥有数据库的应用程序 现在我想发布新版本的应用程序 但我的数据库添加了新字段 我希望将旧数据保存在数据库中,并添加带有其他字段的新数据库

我的数据库是否会被覆盖(我将丢失我的数据副本)或将添加新的数据库

1 个答案:

答案 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++;
            }
        }
}