Domanda

Ho problemi ad aprire un db berkeley in Python usando bdtables. Poiché bdtables viene utilizzato dalla libreria che sto usando per accedere al database, ho bisogno che funzioni.

Il problema sembra essere che l'ambiente db che sto provando ad aprire (ho una copia del database da aprire), è la versione 4.4 mentre libdb è la versione 4.6. Ottengo il seguente errore utilizzando bsddb.dbtables.bsdTableDB ([dbname], [cartella]):

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

Tuttavia, bsddb.btopen ([dbname]) funziona.

Ho anche provato a installare db4.4-util, db4.5-util e db4.6-util. Il tentativo di utilizzare db4.6_verify ha come risultato:

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 provoca il blocco del computer e non succede nulla.

Infine, se eseguo db4.4_recover sul database, funziona. Tuttavia, dopo visualizzo il seguente errore "Nessun file o directory" in Python.

È stato utile?

Soluzione

Penso che le risposte debbano andare nella sezione "risposta" sezione piuttosto che come aggiunta alla domanda poiché indica che la domanda ha una risposta nelle varie pagine dell'elenco delle domande. Lo farò per te ma, se anche tu riesci a farlo, lascia un commento sulla mia risposta in modo che io possa cancellarlo.

Citando " rispondi alla domanda " ;:

Verificando tutto in questa domanda, alla fine ho risolto il problema. Il "Nessun file o directory" è causato dalla mancanza di alcuni file __db.XXX. Usando

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

dopo db4.4_recover, questi file sono stati creati e ora tutto funziona.

Tuttavia, era un po 'un problema oscuro, e inizialmente difficile da capire. Ma grazie alla domanda Esame dei file DB Berkeley dalla CLI , I ho gli strumenti di cui avevo bisogno. Lo pubblicherò qui se qualcuno dovesse riscontrare lo stesso problema in futuro e finire su stackoverflow.com

Altri suggerimenti

Accidenti, verificando tutto in questa domanda alla fine ho risolto il problema. Il "Nessun file o directory" è causato dalla mancanza di alcuni file __db.XXX. Usando bsddb.dbtables.bsdTableDB ([dbname], [cartella], create = 1) dopo db4.4_recover, questi file sono stati creati e ora tutto funziona.

Tuttavia, era un po 'un problema oscuro, e inizialmente difficile da capire. Ma grazie alla domanda Esame dei file Berkeley DB dalla CLI ho ottenuto gli strumenti di cui avevo bisogno. Lo pubblicherò qui se qualcuno dovesse riscontrare lo stesso problema in futuro e finire su stackoverflow.com

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top