我正在测试打包机制,因此pack-days
设置为零,通过 ZMI 添加和删除对象以生成一些历史记录,并执行 zeopack
,到目前为止工作正常。
但是,如果自上次打包以来没有任何事务,并且触发了另一个新打包,则 Data.fs.old 将被删除/消失,为什么?
分别,哪些代码行在这样做?不知何故找不到它。
启动包始终会删除.old
文件。
当没有什么要打包时,不会在其位置创建新的.old
文件。
请参阅FileStorage.pack()
方法;它在获取包装锁后立即删除现有的.old
文件。
逻辑如下(删除了一些缩进和中间代码):
oldpath = self._file_name + ".old"
if os.path.exists(oldpath):
os.remove(oldpath)
# collect pack info
pack_result = self.packer(self, referencesf, stop, gc)
if pack_result is None:
return
os.rename(self._file_name, oldpath)