Переносимость базового формата DBM

perenosimost bazovogo formata dbm Базы данных и постоянное хранение

Для сохранения объектов модуль shelve создает файлы с помощью базовой системы DBM, которые необязательно будут совместимы со всеми возможными реализациями DBM или версиями Python. Например, файл, созданный с помощью gdbm в Linux или библиотекой bsddb в Windows, может не читаться при использовании Python, установленного с другими модулями DBM.

Это все та же проблема переносимости, которую мы рассматривали при обсуждении файлов DBM выше. Как вы помните, когда создается файл DBM (а соответственно и файл хранилища модуля shelve), модуль dbm пытается импортировать все возможные модули системы DBM в предопределенном порядке и использует первый найденный модуль. Когда позднее модуль dbm открывает существующий файл, он пытается определить по содержимому файла, какая система DBM использовалась при его создании. При создании файла сначала делается попытка использовать систему bsddb, доступную в Windows и во многих Unix-подобных системах, поэтому ваш файл DBM будет совместим со всеми платформами, где установлена версия Python с поддержкой BSD. То же относится к платформам, где установлена версия Python, использующая собственную реализацию dbm.dumb при отсутствии поддержки других форматов DBM. Однако если для создания файла DBM использовалась система, недоступная на целевой платформе, использовать этот файл будет невозможно.

Если обеспечение переносимости файлов DBM имеет большое значение для вас, примите меры, чтобы все версии Python, под управлением которых будет выполняться чтение ваших данных, использовали совместимые модули DBM. Если это невозможно, используйте для сохранения данных модуль pickle и плоские файлы (в обход модулей shelve и dbm) или одну из объектно-ориентированных баз данных, с которыми мы познакомимся далее в этой главе. Такие базы данных зачастую способны предложить полную поддержку тран зак ций в виде методов подтверждения изменений и автоматической отмены в случае ошибки.

Использованная литература:

Марк Лутц — Программирование на Python, 4-е издание, II том, 2011

Каталог сайтов Всего.ру
Оцените статью
Секреты программирования
Добавить комментарий