我正在测试打包机制,因此将pack-days
设置为零,通过ZMI添加和删除对象以生成一些历史记录,并执行zeopack
,到目前为止工作正常。
然而,如果自上次打包以来没有任何交易,并且触发了另一个新打包,则Data.fs.old被删除/消失,为什么?
分别是哪些代码行呢?找不到它。
答案 0 :(得分:3)
启动包始终删除.old
文件。
如果没有任何内容可以打包,则不会在其中创建新 .old
文件。
见FileStorage.pack()
method;它在获取打包锁后立即删除现有的.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)