Вопрос

У меня проблемы с открытием базы данных Беркли в python с использованием bdtables. Поскольку bdtables используется библиотекой, которую я использую для доступа к базе данных, мне нужно, чтобы она работала.

Кажется, проблема в том, что среда db, которую я пытаюсь открыть (у меня открылась копия базы данных), - это версия 4.4, а libdb - версия 4.6. Я получаю следующую ошибку, используя bsddb.dbtables.bsdTableDB ([имя_БД], [папка]):

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

Однако bsddb.btopen ([dbname]) работает.

Я также попытался установить db4.4-util, db4.5-util и db4.6-util. Попытка использовать db4.6_verify приводит к:

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.4_recover в базе данных, это работает. Однако впоследствии я получаю следующую ошибку «Нет такого файла или каталога» в Python.

Это было полезно?

Решение

Я думаю, что ответы должны идти в разделе "ответ" раздел, а не в качестве дополнения к вопросу, поскольку это помечает вопрос как наличие ответа на различных страницах списка вопросов. Я сделаю это для вас, но, если вы тоже сможете это сделать, оставьте комментарий к моему ответу, чтобы я мог его удалить.

Цитирование " ответ на вопрос "

Проверяя все в этом вопросе, я в итоге решил проблему. «Нет такого файла или каталога» вызвано отсутствием некоторых файлов __db.XXX. Использование

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

после db4.4_recover эти файлы были созданы, и все теперь работает.

Тем не менее, это было немного неясной проблемой, и изначально ее было трудно понять. Но благодаря вопросу изучения файлов Berkeley DB из CLI , я получил инструменты, которые мне нужны. Я просто опубликую его здесь, если в будущем у кого-то возникнет та же проблема, и в конечном итоге он окажется на stackoverflow.com

Другие советы

Блин, проверяя все в этом вопросе я в итоге решил проблему. «Нет такого файла или каталога» вызвано отсутствием некоторых файлов __db.XXX. Используя bsddb.dbtables.bsdTableDB ([dbname], [folder], create = 1) после db4.4_recover, эти файлы были созданы, и все теперь работает.

Тем не менее, это было немного неясной проблемой, и изначально ее было трудно понять. Но благодаря вопросу «Изучение файлов Berkeley DB из CLI» я получил необходимые инструменты. Я просто опубликую его здесь, если в будущем у кого-то возникнет та же проблема, и в конечном итоге он окажется на stackoverflow.com

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top