我正在测试打包机制,因此设置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)