마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

어플 기능 추가에 따른 sqlite 테이블 칼럼 추가 방법 좀 알려주세요

0 추천

제가 어플을 등록하고 이번에 기능 추가를 하게 되서 기존의 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를 어떻게 작성해야 할까요?

어플을 업데이트 하여

기존의 사용자는 테이블에 칼럼이 추가되고 

새로운 사용자는 칼럼이 추가된 테이블을 생성하고 싶습니다.

 

WoowK (180 포인트) 님이 2018년 6월 26일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...