티스토리 뷰
SQLite 에서 ROOM 까지 (5) - SQLite 로 생성된 기존 DB 에 column 추가하기
parkho79 2020. 8. 20. 09:24이번 포스팅에서는 SQLite 로 생성된 기존의 DB 에 column 을 새로 추가하는 방법에 대해 알아보려 한다.
기존 DB 에 column 을 추가하기 위해서는 DB version 을 upgrade 해야한다.
SQLiteOpenHelper 는 DB 를 open 할 때 기존 DB version 보다 현재 DB version 이 크다면 onUpgrade() 를 호출한다.
호출된 onUpgrade 함수에 신규 column 을 추가하면 된다.
참고로, 지난 포스팅에서는 UI, DB 생성, CRUD 을 알아 보았다.
[Android/Database] - SQLite 에서 ROOM 까지 (2) - UI 구성
[Android/Database] - SQLite 에서 ROOM 까지 (3) - SQLiteOpenHelper
[Android/Database] - SQLite 에서 ROOM 까지 (4) - SQLite 를 이용한 CRUD
DB table
하단은 예제에 사용한 DB table 이다.
노란색 배경의 나이 column 을 신규로 삽입할 것이다.
Field | Type | Property |
ID (StudentEntry._ID) |
INTEGER | primary key auto increment |
학년 (StudentEntry.GRADE) |
INTEGER | |
학번 (StudentEntry.NUMBER) |
INTEGER | |
이름 (StudentEntry.NAME) |
TEXT | |
나이 (StudentEntry.AGE) |
INTEGER |
◼ DB version upgrade
기존 DB 에 column 을 추가하고 이를 반영하기 위해서는 DB version 을 upgrade 해야한다.
◼ DB 생성 시 column 추가
신규로 app 실행 시 에서도 age column 이 추가되야 하므로 DB 생성 할 때도 column 을 추가하자.
onUpgade 처리
위에서 설명한 것 처럼 SQLiteOpenHelper 는 DB 를 open 할 때 기존 DB version 보다 현재 DB version 이 크다면 onUpgrade() 를 호출한다.
해당 함수에서 처리하는 방식은 아래와 같이 두가지로 나눌 수 있다.
◼ 기존 data 를 버리고 신규 생성
Offline DB 를 cache 용도로 쓰고 실제 데이터는 online 에서 가져 오는 경우는 하단과 같이 기존 table 을 삭제 후 신규 테이블을 생성하면 된다.
◼ 기존 data 유지하기
기존 DB 를 유지해야 하는 경우는 해당 version 에 맞춰 필요한 column 을 추가한다.
Source code
https://github.com/parkho79/FromSQLiteToRoom_2
'Android > Database' 카테고리의 다른 글
SQLite 에서 ROOM 까지 (7) - ROOM 이란? (0) | 2020.09.01 |
---|---|
SQLite 에서 ROOM 까지 (6) - DB 확인하기 (0) | 2020.08.25 |
SQLite 에서 ROOM 까지 (4) - SQLite 를 이용한 CRUD (0) | 2020.08.14 |
SQLite 에서 ROOM 까지 (3) - SQLiteOpenHelper 를 이용한 DB 생성 (0) | 2020.08.11 |
SQLite 에서 ROOM 까지 (2) - UI 구성 (0) | 2020.08.07 |
- Total
- Today
- Yesterday
- mPANDO
- task 생성
- 채굴앱
- android intent
- android activity flag
- 안드로이드 서비스
- p2e
- BroadcastReceiver
- notifyDataSetChanged
- task
- onContextItemSelected
- registerForContextMenu
- 안드로이드 인텐트
- StringUtils
- 앱테크 추천
- Android Service
- StartService
- android task
- 리워드 어플
- 무료 채굴
- android flag activity
- 리워드앱
- onCreateContextMenu
- Intent
- 무료채굴
- WEMIX
- bindservice
- RoomDatabase
- 앱테크
- M2E
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |