Question

J'ai des problèmes pour ouvrir une base de données berkeley en python avec bdtables. Comme bdtables est utilisé par la bibliothèque que j’utilise pour accéder à la base de données, j’en ai besoin pour fonctionner.

Le problème semble être que l’environnement de base de données que j’essaie d’ouvrir (j’ai une copie de la base de données à ouvrir) est la version 4.4, tandis que libdb est la version 4.6. J'obtiens l'erreur suivante en utilisant bsddb.dbtables.bsdTableDB ([nombase], [dossier]):

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

Cependant, bsddb.btopen ([nombase]) fonctionne.

J'ai également essayé d'installer db4.4-util, db4.5-util et db4.6-util. Essayer d'utiliser db4.6_verify donne les résultats suivants:

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 a pour effet de bloquer l'ordinateur et que rien ne se passe.

Enfin, si je lance db4.4_recover sur la base de données, cela fonctionne. Cependant, j'obtiens ensuite l'erreur suivante: "Aucun fichier ou répertoire de ce type" en python.

Était-ce utile?

La solution

Je pense que les réponses devraient figurer dans la section "répondre". section plutôt que sous la forme d’un additif à la question car cela indique que la question a une réponse sur les différentes pages de la liste de questions. Je le ferai pour vous, mais si vous vous y prenez également, laissez un commentaire sur ma réponse pour que je puisse le supprimer.

Citation "Réponse à la question":

Après avoir tout vérifié dans cette question, j’ai finalement résolu le problème. Le "fichier ou répertoire de ce type" est dû à l'absence de certains fichiers __db.XXX. Utiliser

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

après db4.4_recover, ces fichiers ont été créés et tout fonctionne maintenant.

Malgré tout, c’était un problème un peu obscur, et au début difficile à comprendre. Mais grâce à la question Examen des fichiers de base de données Berkeley à partir de la CLI , je J'ai eu les outils dont j'avais besoin. Je vais simplement le poster ici si quelqu'un finit par avoir le même problème à l'avenir et se retrouver à stackoverflow.com

Autres conseils

Zut, en vérifiant tout dans cette question, j'ai finalement résolu le problème. Le "fichier ou répertoire de ce type" est dû à l'absence de certains fichiers __db.XXX. En utilisant bsddb.dbtables.bsdTableDB ([nombase], [dossier], créer = 1) après db4.4_recover, ces fichiers ont été créés et tout fonctionne maintenant.

Malgré tout, c’était un problème un peu obscur, et au début difficile à comprendre. Mais grâce à la question Examiner les fichiers Berkeley DB de la CLI, j'ai eu les outils dont j'avais besoin. Je vais simplement le poster ici si quelqu'un finit par avoir le même problème à l'avenir et se retrouver à stackoverflow.com

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top