2013-09-24 1 views
1

"URL"과 같은 일부 키를 기존 테이블에 추가하려고합니다.Android의 sqlite 데이터베이스에서 iOS와 같은 방식으로 간단한 마이그레이션을 수행하는 방법은 무엇입니까?

iOS에서 새로운 버전의 데이터 모델을 만들고 경량 마이그레이션을 수행 할 수 있습니다.

그러나 SQLiteOpenHelper의 기본 방법은 이전 DB를 파괴하고 새 데이터베이스를 만드는 것 같습니다.

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    // Drop older table if existed 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_1 + ", " 
      + TABLE_2 + ", " + TABLE_3 + ", " 
      + TABLE_4); 
    // Create tables again 
    onCreate(db); 
} 

어떻게 이전 데이터베이스를 유지하고 Android에 새 키를 추가 할 수 있습니까?

+0

ALTER TABLE SQL 명령을 사용하십시오. 게시 한 코드는 가장 간단한 구현입니다. 실제로 사용하기위한 것이 아니고 데이터베이스 업그레이드에 초점을 두지 않은 예제에서만 사용할 수 있습니다. – njzk2

답변

1

자신의 업그레이드 SQL 쿼리를 작성하여 데이터베이스를 업그레이드 할 수 있습니다.

모든 테이블을 삭제 한 후 onCreate를 호출하면 FK, null 필드 또는 데이터베이스 버전을 신경 쓰지 않고 테이블을 업그레이드 할 수 있습니다.

oldVersion 및 newVersion을 사용하여 데이터베이스에서 올바른 변경 (alter table)을 수행하십시오.

onUpgrade doc

관련 문제