2011-09-13 2 views
2

그래서 내 앱을 거의 갈 준비가되어 있습니다. 데이터베이스 업데이트가 어떻게 작동하는지에 대해 궁금해하고 있습니다.이후 버전에서 정상적으로 데이터베이스 업그레이드를 처리 할 수 ​​있습니까?

기본적으로 퀴즈이며 질문을 추가하거나 제거하고 사용자의 개인 데이터를 보관해야합니다. 얼마나 많은 정답과 오답, 어떤 질문이 있습니까?

이것은 새로운 질문을 제거하거나 추가하고 싶을 때 조금 더 복잡해지고, 구조를 변경할 때 더욱 악화됩니다.

하지만 지금이 코드에 대해 걱정해야합니까? 내 앱의 두 번째 릴리스에 업데이트 코드가 포함될 수 있다고 생각합니다. 이렇게하면 초기 앱을 먼저 출시하고 백그라운드에서 업그레이드하는 것에 대해 걱정할 필요가 없습니다.

이것이 가능합니까? 또는 대기 코드로 인 업그레이드 코드가 있어야합니까??

답변

3

이제 SQLiteOpenHelper을 사용해야하며 나중에 onUpgrade() -code에 대해 걱정할 수 있습니다.

데이터베이스의 버전 번호를 늘리면이 메서드가 실행됩니다. 업데이트를 처리/관리 할 수 ​​있습니다.


초기 버전 번호는 constructor으로 전달됩니다. 또한/얻을 해당합니다 (onUpgrade() -method에 전달)을 SQLiteDatabase -object의 방법을 사용하여 설정할 수 있습니다

: setVersion()와 기본적으로 getVersion()

+0

답장을 보내 주셔서 감사합니다. 홈 화면에서 SQLiteOpenHelper를 사용하여 데이터베이스가 만들어 졌는지 확인합니다. 버전 번호는 어떻게 지정합니까? 업그레이드 할 때 새 버전에서 해당 번호 만 변경하면됩니까? – Somk

+0

내 게시물을 업데이트하고 더 많은 정보를 추가했습니다. –

1

SQLiteOpenHelper.onUpgrade() 목적은 프로그래머가 변경할 수있는 가능성을 제공하는 것입니다 데이터베이스의 버전 번호가 변경되면 데이터베이스에 저장됩니다. 대부분의 경우 데이터베이스/테이블 스키마/구조의 변경과 관련 될 수 있습니다. 그럼에도 불구하고 당신이 SQLiteOpenHelper.onUpgrade() 데이터베이스 콘텐트 변경으로 처리 할 수 ​​있다면 틀린 것은 없습니다.

필자는 DB 콘텐츠가 사용자에 의해 즉시 변경되기 때문에 다른 접근 방식을 선택했습니다. 사용 가능한 기본 데이터 (사례 퀴즈 에서처럼)에 대한 기본 정보가 들어있는 XML 파일 (kinda templates.xml)과 데이터베이스를 처음 열 때 DB에 기본 데이터를 업로드하는 중입니다. 그렇게 할 수 있습니다.

관련 문제