如何在 plone 4.1 中恢复已删除的文件夹?
2 回答
如果您还没有打包删除该文件夹的事务,您可以恢复该文件夹。
首先,使用ZMI 中父文件夹上的“撤消”选项卡。它可能不起作用,系统上的太多其他东西已经改变(通常是目录),所有的改变都被有效地回滚。
下一步有点繁琐和复杂。然后您需要做的是使用包装器打开对象数据库 (ZODB),该包装器将向您显示数据库在历史上给定点的状态。这样做需要手动编辑您的 Zope 服务器配置。我已经在博客文章中写了这些步骤,但这些步骤有点过时了。
在现代的 Plone buildout 中,您需要将zc.beforestorage
egg 添加到您的 buildout 中,并且您需要将enable-product-installation
Zope 的设置切换为False
; 使用 beforestorage 包装器会使您的数据库成为只读的,并且产品安装代码将尝试提交到数据库,从而导致无法启动:
[instance]
eggs +=
zc.beforestorage
zope-conf-additional +=
enable-product-installation False
重建构建后,您需要打开zope.conf
与您的实例关联的文件。如果您通常使用 启动服务器bin/instance
,则该文件位于parts/instance/etc/zope.conf
; 使用的脚本bin/
与部件名称匹配(instance
在本例中)。
找到它定义 ZODB 主数据库的部分:
<zodb_db main>
# Main database
cache-size 10000
# Blob-enabled FileStorage database
<blobstorage>
blob-dir /path/to/var/blobstorage
<filestorage>
path /path/to/var/filestorage/Data.fs
</filestorage>
</blobstorage>
mount-point /
</zodb_db>
您需要将beforestorage
包装器添加到该声明中:
<zodb_db main>
# Main database
cache-size 10000
%import zc.beforestorage
<before>
before 2012-12-01T12:00:00
# Blob-enabled FileStorage database
<blobstorage>
blob-dir /path/to/var/blobstorage
<filestorage>
path /path/to/var/filestorage/Data.fs
</filestorage>
</blobstorage>
</before>
mount-point /
</zodb_db>
注意before <iso timestamp>
那里的行;当您启动您的实例时,该站点将按该时间戳显示。选择一个接近于您删除文件夹的时间。现在您可以将它(再次使用 ZMI)导出到.zexp
文件中。撤消对文件的更改zope.conf
,重新启动并导入恢复的文件夹。
是的,可以在相关文件夹上使用 Zope 管理界面的“撤消”选项卡。这将回滚您删除文件夹的数据库事务,并且如果您刚刚删除了该文件夹,则工作效率最高。其他信息位于:https ://plone.org/documentation/kb/using-the-zope-undo-system-to-roll-back