제가 어플을 등록하고 이번에 기능 추가를 하게 되서 기존의 sqlite 를 이용해 사용하던 테이블에 칼럼을 추가해야하는데 그냥 새로 테이블을 만들어 버리면 기존의 어플을 이용하던 사용자들의 데이터가 사라져 버리고 새로 테이블이 생기니 onUpgrade 부분을 건드려야 할꺼 같은데 어떻게 손을 대야 할지 잘 모르겠습니다.
기존의 코드가
class DBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "DB.db";
private static final int DATABASE_VERSION = 2;
SQLiteDatabase myDb = this.getWritableDatabase();
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE dbA ( Id INTEGER PRIMARY KEY AUTOINCREMENT, a1 TEXT, a2 INTEGER, a3 TEXT, a4 TEXT );");
db.execSQL("CREATE TABLE dbB ( Id INTEGER PRIMARY KEY AUTOINCREMENT, b1 TEXT, b2 INTEGER, b3 TEXT );");
}
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {
db.execSQL("DROP TABLE IF EXISTS dbA");
db.execSQL("DROP TABLE IF EXISTS dbB");
onCreate(db);
}
이런식으로 작성했었는데 예를 들어 dbA 테이블에 a5 TEXT 칼럼을 추가 하고 싶으면
onUpgrade를 어떻게 작성해야 할까요?
어플을 업데이트 하여
기존의 사용자는 테이블에 칼럼이 추가되고
새로운 사용자는 칼럼이 추가된 테이블을 생성하고 싶습니다.