Kentico 8.2 - 有没有办法从 GUI 中删除附件历史记录

Kentico 8.2 - Is there a way to delete Attachment History from the GUI

我们的附件在我们的数据库中保存了很长时间,导致数据库变得庞大,我们的备份极不可靠。我们已将附件移至文件系统,从而大幅缩减了文件大小。

现在我们最大的 table 是 CMS_AttachmentHistory。我已经能够测试强力删除 SQL 中的每一行(以及 CMS_VersionAttachment 交界点 table 中的每一行)。但是有没有一种方法可以在 Kentico Admin GUI 中完成此操作而不必求助于此?

当我说暴力删除时,我的意思是:

DELETE FROM dbo.CMS_VersionAttachment

DELETE FROM dbo.CMS_AttachmentHistory 

不确定 8.2。但是您可以尝试使用 recycle bin/objects 进行试验。有几个主题:topic 1 and topic 2。每次你删除它时我都会检查它是否有附件,即使我已经设置了 "files on disc"。您可以像 Kentico 建议的那样将二进制字段设置为空或使用 API.

编写脚本

GUI 中有一个选项可以执行此操作,但它也会影响页面版本历史记录。如果您转到 设置 > 内容 > 内容管理 并查看 工作流程 部分,您可以看到名为 版本历史记录的设置长度。将其减少到一个较低的数字(我相信 20 是默认值)将减少存储的版本历史记录以通过删除不需要的行来反映新值。

但这会影响所有版本历史记录,不仅是附件,还有页面本身。在这种情况下,您需要决定是否 need/want 保留页面的版本历史记录。

如果您不想丢失该历史记录,那么我认为一个不错的选择是编写一个脚本,该脚本可以将 AttachmentBinary 列设置为 null 作为记录你没有need/want(假设你说你现在将文件存储在文件系统上,任何当前版本都将具有正确的值,所以这可能是所有这些)