android의 Afinal 프레임워크에서 데이터베이스 업데이트

1324 단어
프로젝트가 필요합니다. 버전 업그레이드 때 테이블에 새로운 필드를 추가했는데 이상이 발생했습니다.
해결 방법: 데이터베이스의 버전 번호를 감청하고 데이터베이스를 업데이트합니다.
FinalDb 객체를 작성할 때 다음과 같은 구조 함수를 사용하여 버전 번호 변경을 수신합니다.
db = FinalDb.create(getActivity(), "chat.db", true, 3, dbUpdateListener);

그리고 DbUpdateListener를 다시 쓰고,
DbUpdateListener dbUpdateListener = new FinalDb.DbUpdateListener() {
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            if (tabbleIsExist(db, "chat_messages")) {
                db.execSQL(VERSION_3_SQL_ADD_COLUMN_HAS_PRAISED);
            }

            if (tabbleIsExist(db, "chat_conversations")) {
                db.execSQL(VERSION_3_SQL_ADD_COLUMN_ACCESSTOKEN);
                db.execSQL(VERSION_3_SQL_ADD_COLUMN_ISLOGIN);
            }
        }
    };

onUpgrade () 방법에서 사용자 정의 작업을 할 수 있습니다. 일반적으로 테이블 필드를 추가하는 작업을 수행합니다.
private String VERSION_3_SQL_ADD_COLUMN_HAS_PRAISED = "alter table chat_messages add column has_appraised varchar(50)";

좋은 웹페이지 즐겨찾기