Сжатие версионной базы portal_historiesstorage
В ZMI-интерфейсе сайта есть папка portal_historiesstorage.
Зачастую, при длительной и активной работе сайта, размер этой папки в несколько раз превышает размер всего остального сайта.
Тут хранятся все версии изменённых объектов. При сжатии БД размер portal_historiesstorage не уменьшается.
Решение
В Plone при каждом редактировании объекта создается его новая версия (т.н. plone versioning), и все они хранятся в базе данных. Все версии, их количество и размер отображается в папке portal_historiesstorage.
При этом каждая версия занимает место и возможна ситуация, когда база данных становится огромного размера (известны случаи, когда БД достигала 15 Гб). Но на данный момент в Plone нет инструментов для явного удаления старых версий объектов, это только планируется сделать.
Решается эта проблема установкой максимального количества хранимых версий для всех объектов сайта.
Для этого необходимо в ZMI-интерфейсе войти в portal_purgepolicy и в строчке maximum number of versions to keep in the storage (set to -1 for infinite) заменить значение «-1» на желаемое положительное (например, «5») и нажать кнопку «Save Changes». Теперь в базе данных будет храниться только 5 последних версий каждого объекта, а более ранние будут удаляться.
Однако, при изменении количества хранимых версий старые версии всех объектов автоматически не удаляются. Изменения вступают в силу только для вновь создаваемых или редактируемых объектов.
Поэтому, для того чтобы удалить старые версии объектов и тем самым уменьшить размер базы данных, необходимо вручную отредактировать каждый объект. Достаточно будет открыть объект для редактирования и нажать кнопку «Сохранить», после чего будет сохранено указанное ранее максимальное количество версий. Все более ранние версии будут удалены.
Дополнительные материалы по теме:
Катерина Унжакова
Генеральный директор
ООО «Адели Сервис»