안드로이드 개발 질문/답변
(글 수 45,052)
제목그대로 현재 사용중인 APP이 있는데 그 APP의 구동에 지장이 안가게 DB의 column을 변경하려면 어떻게 해야 하나요?
예를들어
seq, name, phone, address 라는 컬럼이 존재하였다면
seq, name, phone, address, age 와 같이 컬럼을 추가하고 싶은데...
현재 DBHelper를 사용중이고, DBHelper의 onCreate에
exeSQL()로 테이블 생성 쿼리에서 컬럼을 추가시켜도
DB를 접근 하는 부분에서 에러가 나더라구요...
만약 컬럼을 추가 시키려면..어떻게 해야 할까요..?
(+ 테이블 생성 쿼리는 create table if not exists .... 로 하였습니다.)
DBHelper가 SQLiteOpenHelper클래스를 말씀하시는지요?
SQLiteOpenHelper 클래스의 onCreate()는 딱한번만 호출되는 걸로 알고있습니다 (db 생성할때 말이지요);
그리하여 SQLiteOpenHelper 클래스는 DB 버전이 변경이 되면 onUpgrade()를 호출하게됩니다.
DB 버전은 SQLiteOpenHelper 생성자를 호출할때 넘겨주게 되는데.
super(context,"setting.db" , null, 2); <= 여기서 2라고 넘겨주는 놈
버전을 수정한뒤에 객체를 생성하게되면 자동으로 onUpgrade()를 호출합니다.
이때 기존에 있던 테이블 드랍후 onCreate()를 호출하시거나 alter sql문을 이용해서 컬럼을 추가 하시면될것같습니다.