Permanent bulk delete of old topics

Our forum is near by reaching first year of usage.
Some of our category / topic is used for daily work,
We have lot of topics which is irrelevant in perspective of holding for long time.
Is there any feature or plan to implement some kind of deleting or archiving old topics.
Is there way to BULK delete topics using some kind of SQL queries.
Cloud I do something like in XX category delete all topics (post) older then date 1.1.2015.

Why I’ll love to delete posts is because I do not want to lose performances of my instance.
This is where we get in 10 months

Assumption is that 40% of this conversation is now irrelevant and longer required for holding.
If this going to speed up our discource why not delete old posts

1 лайк

I think it is good to consider for longer term – if the content is truly of no value, it should be archived out somehow – but based on those numbers you should be fine for a while.

3 лайка

Just to share my requirements, I’ll be setting up discourse from smf. We have 10 years worth of SMF data, so I’d like to purge all except for the last 5 years worth. In addition, I’d like to be able to automatically delete posts older then 5 users once Discourse is operational.

Может ли команда Discourse предоставить решение для массового безвозвратного удаления?

У людей есть веские причины для массового безвозвратного удаления тем, и необходимость писать код не только невозможна для тех, кто не умеет программировать, но и гораздо более подвержена ошибкам, чем официальное решение.

Я переименовал заголовок этой темы с запросом функции, чтобы было ясно, что речь идёт о постоянном массовом удалении. Мы можем обсудить эту функцию здесь и детально проработать, как она может выглядеть в интерфейсе, но не стоит рассчитывать на её реализацию в ближайшем будущем.

Постоянное удаление постов сопряжено с большим риском, а массовое постоянное удаление — ещё большим! Вы уверены, что действительно хотите это сделать? Ваша база данных настолько велика, что вы не можете мириться с удалёнными темами, как все остальные? Или есть другая причина, по которой вы хотите навсегда удалить темы? Можете ли вы поделиться своими причинами?

Существует Introducing permanently delete post functionality, но это работает только для одной темы за раз.

Насколько мне известно, в настоящее время невозможно просмотреть список удалённых постов и затем массово удалить их навсегда, например, по таким критериям, как возраст. Вы можете написать скрипт для выполнения этой задачи из командной строки или, если вам неудобно, обратиться в Marketplace, чтобы кто-то сделал это за вас.

Если бы такая функция существовала в интерфейсе, могли бы вы подробнее описать, как, по вашему мнению, она должна работать?

Возможно, лучшим подходом будет следующее:

  • добавить фильтр в расширенный поиск для отображения удалённых тем. Тогда вы сможете комбинировать его с другими фильтрами (диапазон дат, тег, категория, автор и т. д.), чтобы получить список удалённых тем, которые вы хотите навсегда удалить.
  • когда включена возможность can_permanently_delete, также добавить опцию «Удалить навсегда» в массовых действиях.

(Пожалуйста, не дублируйте один и тот же запрос в нескольких старых темах — я удалил другую).

Риск будет меньше при наличии официальной функции, чем когда люди пытаются запускать пользовательские команды.

В GitHub есть функция постоянного удаления репозиториев. У меня всё в порядке. Перед удалением они требуют ввести имя организации и репозитория, а также пароль для подтверждения намерения.

Не понимаю, почему это должно быть заблокировано. Это просто раздражает.

Да. На 100%. Я не хочу, чтобы в моей базе данных был мусор, особенно бессмысленный мусор от ботов, пытающихся получить одобрение сообщений и тратящих моё время. Зачем мне хранить такие вещи?

Пожалуйста, предоставьте нам официальный, проверенный способ выполнения этой операции. Или хотя бы опцию таймера для автоматического удаления удалённых сообщений через XX дней.

Вы можете добавить тройную проверку в пользовательский интерфейс, чтобы снизить риск. Например, аналогично сообщению «Удалить 124 пользователя» при массовом удалении пользователей, но также запрашивать повторную аутентификацию или что-то подобное, чтобы сделать процесс ещё безопаснее. Возможно, выводить яркое красное предупреждение, которое необходимо подтвердить. Вы можете устранить риск, заставив людей трижды подумать перед массовым удалением сообщений.

Худшее возможное решение для таких случаев — полное отсутствие решения, с точки зрения конечного пользователя. Меня абсолютно раздражает мысль о том, что я не могу сделать то, что, как мне кажется, должно быть легко реализовать в интерфейсе (тройная или даже пятикратная проверка — это вполне приемлемо!).

Половина хранилища в моей базе данных занята бессмысленным спамом от ботов. Мне совсем не хочется платить за дополнительное место; я хочу легко удалять лишнее и продлить жизнь базы данных в два раза.

1 лайк

Я не спорю с тем, что это была бы отличная функция, поэтому я запрашиваю больше деталей и собираю идеи о том, как это могло бы выглядеть.

Для нас реализация этого в качестве официальной функции не будет приоритетной, пока больше наших клиентов не начнут её запрашивать. Наличие дополнительных данных в базе данных не обязательно является проблемой, особенно на нашем хостинге, где пространство для хранения редко бывает ограниченным.

Хорошим первым шагом было бы изучить код Бьянки по адресу Introducing permanently delete post functionality и посмотреть, можно ли создать задачу Rake для массового удаления, которая была бы простой и безопасной для выполнения. У нас есть множество задач Rake, которые абсолютно безопасны, и многие функции, которые в итоге попадают в интерфейс, изначально начинаются именно как задачи Rake.

3 лайка

Я также хотел бы попросить официальную поддержку этой функции!

Я изучаю этот вопрос — я импортировал множество тем пакетно, но форматирование было неверным, поэтому я хочу удалить их пакетно и попробовать снова. Я могу выполнить мягкое удаление в массовом порядке через интерфейс, но они всё ещё остаются в базе данных.

Удивительно, что платформа с таким количеством отличных функций не имеет реального контроля над хранением данных. Это может представлять риск несоблюдения нормативных требований для некоторых компаний.

Как минимум, вы должны иметь возможность указывать период хранения (в годах?) для мягко удалённых элементов — это помогло бы обеспечить соответствие требованиям и управление ёмкостью.

2 лайка