Pregunta

Tengo problemas para abrir una base de datos de berkeley en python utilizando bdtables. Dado que la biblioteca que estoy utilizando para acceder a la base de datos utiliza bdtables, necesito que funcione.

El problema parece ser que el entorno db que estoy intentando abrir (tengo una copia de la base de datos para abrir), es la versión 4.4, mientras que libdb es la versión 4.6. Recibo el siguiente error al utilizar bsddb.dbtables.bsdTableDB ([nombrebd], [carpeta]):

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

Sin embargo, bsddb.btopen ([nombrebd]) funciona.

También he intentado instalar db4.4-util, db4.5-util y db4.6-util. Intentando usar los resultados de db4.6_verify en:

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
Los resultados de

db4.4_verify en la computadora simplemente se cuelgan y no pasa nada.

Finalmente, si ejecuto db4.4_recover en la base de datos, eso funciona. Sin embargo, luego obtengo el siguiente error 'No existe tal archivo o directorio' en python.

¿Fue útil?

Solución

Creo que las respuestas deben ir en la " respuesta " sección en lugar de como un addendum a la pregunta, ya que marca la pregunta como tener una respuesta en las distintas páginas de la lista de preguntas. Lo haré por ti, pero, si también quieres hacerlo, deja un comentario en mi respuesta para poder eliminarlo.

Citar " respuesta en la pregunta " ;:

Verificando todo en esta pregunta, eventualmente resolví el problema. El 'No tal archivo o directorio' está causado por la falta de algunos archivos __db.XXX. Utilizando

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

después de db4.4_recover, estos archivos se crearon y todo está funcionando.

Aún así, fue un problema un poco oscuro, y al principio fue difícil de entender. Pero gracias a la pregunta Examinar los archivos Berkeley DB de la CLI , Conseguí las herramientas que necesitaba. Solo lo publicaré aquí si alguien termina con el mismo problema en el futuro y termina en stackoverflow.com

Otros consejos

Maldición, al verificar todo en esta pregunta, eventualmente resolví el problema. El 'No tal archivo o directorio' está causado por la falta de algunos archivos __db.XXX. Usando bsddb.dbtables.bsdTableDB ([dbname], [folder], create = 1) después de db4.4_recover, estos archivos se crearon y todo está funcionando.

Aún así, fue un problema un poco oscuro, y al principio fue difícil de entender. Pero gracias a la pregunta Examinar archivos de Berkeley DB de la CLI obtuve las herramientas que necesitaba. Solo lo publicaré aquí si alguien termina con el mismo problema en el futuro y termina en stackoverflow.com

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top