zodb:从备份中恢复丢失的对象
dm.zodb.repair的Python项目详细描述
此包包含一个从zodb备份还原丢失对象的函数。 在未来,它可能会为zodb修复提供更多的工具。
recover.restore_from_backup
模块recover定义函数restore_from_backup 从zodb备份还原丢失的对象。restore_from_backup 具有参数lost,backup和target。
lost是标识target中丢失对象的oid的一个表。 例如,这些oid可能是由标准的fsrefs实用程序找到的。
backup和target是开放的zodb存储。backup是只读的 并且可以以只读方式打开;target是读写的。
restore_from_backup读取 从backup丢失,并将它们写入target。如果这样恢复 对象包含对target中不可用的其他对象的引用, 它们是递归恢复的。 这些操作是通过python的标准日志子系统记录的。
示例用法:
from logging import basicConfig, getLogger, INFO from ZODB.FileStorage.FileStorage import FileStorage from dm.zodb.repair.recover import restore_from_backup basicConfig() logger = getLogger(); logger.setLevel(INFO) lost = [....] # list of oids for lost objects, e.g. derived from "fsrefs" output backup = FileStorage('backup.fs', read_only=True) target = FileStorage('target.fs') restore_from_backup(lost, backup, target) backup.close() target.close()