Поискав по форуму, я с удивлением для себя обнаружил, что эта тема еще не обсуждалась.
А ведь серьезная тема — в Joomla (начиная с версии 3.2) появился функционал, позволяющий хранить историю изменения статей (как в wiki) и при желании откатываться на более ранние версии.
Потенциально возможность интересная, только вот на практике (во всяком случае для меня) она вылилась проблемой.
Узнал я об этой великой возможности после того, как на одном из сайтов база данных вдруг начала раздуваться до неимоверных размеров.
Почему?
Да потому, что:
Во-первых, по умолчанию сохраняются последние 10 версий статьи, что довольно-таки немало.
Во-вторых, сами статьи в БД хранятся как положено в кириллице, а вот сохраненные версии почему-то хранятся в кодах Unicode (типа «\u0440\u0435\u043c\u043e\u043d\u0442» вместо шестибуквенного слова). Итого база распухает еще в 6-7 раз.
Я не разбирался в механизме, но если все версии контента хранятся целиком, то получаем увеличение БД в 60-70 (!) раз. Даже если данные сохраняются не полностью, распухание все равно будет очень существенным. Например, в моем случае таблица _ucm_history занимает около 95% от общего объема БД, и это при том, что сайт новый и статьи после создания почти не редактировались.
На большинстве моих сайтов версионность в принципе не нужна, и думаю, что не один я такой.
Версионность контента легко можно отключить в настройках материалов на вкладке «Форма редактирования» (Сохранять историю -> Нет).
Но вот вопрос — как корректно поудалять уже существующую сохраненную историю изменения статей?
Странно, но в настройках возможности пакетной чистки не предусмотрено (или я плохо искал), а удалять вручную версии в каждой статье — слишком долго и напоминает мартышкин труд.
Можно ли просто удалить таблицы «_ucm_base», «_ucm_content», «_ucm_history»? Или есть более корректный способ очистки?