2008-10-08 7 views
3

bdtables를 사용하여 파이썬에서 berkeley db를 여는 중 문제가 있습니다. bdtables는 데이터베이스에 액세스 할 때 사용하는 라이브러리에서 사용되므로 제대로 작동해야합니다.파이썬에서 berkeley db를 열 때 문제가 발생했습니다.

문제는 DB 환경을 열려고 시도하는 것입니다 (열려고하는 데이터베이스 복사본이 있습니다). 버전은 4.4이고 libdb는 4.6입니다.

(-30972, "DB_VERSION_MISMATCH: Database environment version mismatch -- Program version 4.6 doesn't match environment version 4.4") 

그러나, bsddb.btopen이 ([DBNAME]가) 작동 : 나는 bsddb.dbtables.bsdTableDB ([DBNAME], [폴더])를 사용하여 다음과 같은 오류가 발생합니다.

db4.4-util, db4.5-util 및 db4.6-util도 설치하려고했습니다. 단지 매달려, 아무것도 발생하지 않는 컴퓨터에

db4.6_verify: Program version 4.6 doesn't match environment version 4.4 
db4.6_verify: DB_ENV->open: DB_VERSION_MISMATCH: Database environment version mismatchs 

db4.4_verify 결과 :에 db4.6_verify 결과를 사용하려고합니다.

마지막으로 데이터베이스에서 db4.4_recover를 실행하면 작동합니다. 그러나 나중에 파이썬에서 'No such file or directory'오류가 발생합니다.

답변

3

답변은 다양한 질문 목록 페이지에 답변이있는 것으로 표시된 이후 질문에 대한 부록이 아닌 "대답"섹션에 있어야한다고 생각합니다. 나는 당신을 위해 그것을 할 것입니다. 그러나 만약 당신이 그것을하기 위해 주변에 있다면, 제 대답에 대한 코멘트를 남겨 두어 그것을 삭제할 수 있습니다.

"는 질문에 대답"인용 :

이 질문에 모든 것을 확인을, 나는 결국이 문제를 해결했다. 'No such file or directory'는 일부 __db.XXX 파일이 누락되어 발생합니다.

bsddb.dbtables.bsdTableDB([dbname],[folder], create=1) 

db4.4_recover 이후에 이러한 파일이 생성되어 모든 작업이 완료되었습니다.

여전히 약간의 애매한 문제 였고 처음에는 알아 내기가 어려웠습니다. 하지만 Examining Berkeley DB files from the CLI이라는 질문 덕분에 필요한 도구를 얻을 수있었습니다. 나는 누군가가 같은 문제가 끝날 때까지 여기에 게시하고 결국 stackoverflow.com에서 끝납니다

+0

나 자신도 대답을 게시했다. 나는 내 자신의 대답을 받아 들일 수없는 부끄러운 줄 알았다. 나는 이것이 내가 스스로 대답하는 두 번째 질문이라고 생각한다. – Staale

+0

아마 이것을 삭제할 시간이 왔습니까? –

0

젠장, 내가 결국이 문제를 해결했습니다. 'No such file or directory'는 일부 __db.XXX 파일이 누락되어 발생합니다. db4.4_recover 이후에 bsddb.dbtables.bsdTableDB ([dbname], [folder], create = 1)를 사용하면이 파일들이 생성되고 모든 것이 작동합니다.

여전히 약간의 애매한 문제 였고 처음에는 알아 내기가 어려웠습니다. 하지만 CLI에서 Berkeley DB 파일을 검사하는 질문 덕분에 필자는 필요한 도구를 얻었습니다. 나는 누군가가 같은 문제가 끝나고 stackoverflow.com에서 끝나면 여기에 게시 할 것이다.