2012-04-05 6 views
0

QxOrm을 통해 데이터베이스 (SQLite)에 데이터를 저장하는 C++ 응용 프로그램이 있습니다.SQLite 데이터베이스 파일에 버전 설정

다음 버전에서는 열이 추가/제거/이름이 변경 될 것이므로 생성 된 각 데이터베이스에 버전 번호를 설정하여 누군가가 데이터베이스를로드하려고 시도 할 때 버전을 비교하도록하고 있습니다. 현재 버전의 응용 프로그램과 비교하고 현재 스키마와 일치하도록 열을 자동으로 추가/제거/이름 변경합니다. 그래서 일단

qx::QxSqlDatabase::getSingleton()->setVersion(2); 

는 SQLite는 함께 그런 종류의 일을 할 수 있습니다 :

나는 QxOrm 설명서에 같이 무언가를 찾을 수 없습니다? 그렇지 않으면 데이터베이스 버전을 보유 할 테이블을 작성해야합니까?

답변

2

데이터베이스 버전으로는 충분하지 않을 수 있습니다. 영구 클래스 당 버전 (예 : 열 목록과 같은 영구 클래스 당 다른 정보)을 저장해야합니다. 사용 http://www.qxorm.com/qxorm_en/faq.html#faq_230

: 당신은 QxOrm 라이브러리의 FAQ에 SQL 스키마를 만드는 방법에 대한 몇 가지 정보를 찾을 수 있습니다

QX_REGISTER_HPP_XXX(myClass, myBaseClass, myClassVersion) 

: 당신이 QxOrm 컨텍스트에 영속 클래스를 등록 할 때 , 당신은 버전 번호를 넣어야 할 QxOrm 라이브러리의 반성 엔진, 그것은 할 매우 쉽게, 여기 반성 엔진에 대한 자세한 내용은 : 당신은 당신의 데이터베이스에 테이블을 작성해야합니다 http://www.qxorm.com/qxorm_en/faq.html#faq_190

각이 지속에 대한 상태를 저장하기 ents 클래스 : 클래스 당 버전 번호, 열 목록 등을 저장할 수 있습니다. 그런 다음 2 가지 버전의 영구 클래스를 비교하여 SQL 스키마를 수정하는 것이 매우 쉽습니다.

+0

감사합니다! 다행히 당신이 계정을 열었습니다. QxOrm 태그에 더 많은 정보를 넣고 싶다면 알려주세요! – talnicolas

0

이제 데이터베이스 스키마 진화를 관리 할 QxEntityEditor 응용 프로그램이 있습니다. QxEntityEditor는 QxOrm 라이브러리를위한 다중 플랫폼 및 교차 데이터베이스 그래픽 편집기입니다. QxEntityEditor 기능의 비디오 프레젠테이션은 여기에서 제공됩니다. http://www.qxorm.com/qxorm_en/tutorial_4.html

관련 문제