Problema Berkeley abertura db em python
-
05-07-2019 - |
Pergunta
Eu tenho problemas para abrir um db Berkeley em python usando bdtables. Como bdtables é usada pela biblioteca que estou usando para acessar o banco de dados, eu preciso dele para trabalho.
O problema parece ser que o ambiente db Estou tentando abrir (eu tenho uma cópia do banco de dados para aberto), é a versão 4.4, enquanto libdb é a versão 4.6. Eu recebo o seguinte erro usando bsddb.dbtables.bsdTableDB ([dbname], [pasta]):
(-30972, "DB_VERSION_MISMATCH: Database environment version mismatch -- Program version 4.6 doesn't match environment version 4.4")
No entanto, bsddb.btopen ([dbname]) funciona.
Eu também tentei instalar db4.4-util, db4.5-util e db4.6-util. Tentando usar resultados db4.6_verify em:
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
resultados db4.4_verify no computador apenas pendurado, e nada acontecer.
Finalmente, se eu executar db4.4_recover no banco de dados, que as obras. No entanto, depois eu recebo o seguinte erro 'Não existe tal arquivo ou diretório' em python.
Solução
Eu acho que respostas devem ir na seção "resposta" ao invés de como um adendo à pergunta, uma vez que as marcas a questão de ter uma resposta sobre as várias páginas de lista de pergunta. Eu vou fazer isso para você, mas, se você também dar a volta a fazê-lo, deixe um comentário sobre a minha resposta para que eu possa excluí-lo.
Citando "resposta em questão":
Verificar tudo nesta questão, eu finalmente resolveu o problema. O 'Nenhum arquivo ou diretório' são causados ??por alguns arquivos __db.XXX desaparecidas. Usando
bsddb.dbtables.bsdTableDB([dbname],[folder], create=1)
depois db4.4_recover, esses arquivos foi criado e tudo está trabalhando agora.
Ainda assim, foi um pouco de um problema obscuro, e inicialmente difícil de descobrir. Mas, graças à pergunta Examinando arquivos Berkeley DB do CLI, I tem as ferramentas que eu precisava. Eu só vou postar aqui, se alguém acaba com o mesmo problema no futuro e acabar em stackoverflow.com
Outras dicas
Droga, verificando tudo nesta pergunta que eu finalmente resolveu o problema. O 'Nenhum arquivo ou diretório' são causados ??por alguns arquivos __db.XXX desaparecidas. Usando bsddb.dbtables.bsdTableDB ([dbname], [pasta], criar = 1) após db4.4_recover, esses arquivos foi criado e tudo está trabalhando agora.
Ainda assim, foi um pouco de um problema obscuro, e inicialmente difícil de descobrir. Mas, graças à pergunta Examinando arquivos Berkeley DB da CLI eu tenho as ferramentas que eu precisava. Eu só vou postar aqui, se alguém acaba com o mesmo problema no futuro e acabar em stackoverflow.com