Удалить удалённые посты навсегда массово?

Уважаемая команда,

Пожалуйста, помогите мне решить эту проблему!

У нас слишком много удалённых постов, и нам нужно удалить их навсегда, но массово!

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

Я не хочу видеть их в списке удалённых тем — я хочу полностью удалить их из базы данных.

Так что, есть какая-то команда или способ их удалить?

Я этого не делал, но, возможно, эта тема будет полезна:

Не полезно :frowning: Пожалуйста, помогите, если что-то найдено?

Возможно, это вам поможет

image

Категория «Удалённые сообщения» не отображается??

Есть ли у вас категория с идентификатором deleted-posts? Судя по скриншоту, сообщения, вероятно, находятся в категориях с другими идентификаторами.

image

Если я удалю категорию, то будут удалены все ПОСТЫ, которые не находятся в удалённых постах!

Поэтому, не могли бы вы помочь мне удалить удалённые посты из базы данных.

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

Можно ли действительно навсегда удалить удалённые посты из базы данных? Как это сделать?

Если вы можете удалить категорию, значит, вы можете удалять удалённые посты.

Сейчас пересобираю моё тестовое приложение, чтобы установить Data Explorer.

:slight_smile:

Я не уверен, как это сделать. Я лишь хотел отметить, что команда, которую вы ввели, похоже, ищет категорию со слагом deleted-posts.

Когда вы удаляете категорию с помощью задачи Rake, удаляются все посты (не только темы) внутри неё. Однако они удаляются только логически.

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

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

Однако я лишь строю предположения, так что это может быть неверно. :slightly_smiling_face:

Источник:

Если вы войдёте в PostgreSQL, вы сможете удалить его из базы данных.

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

Да, всё верно.
Чтобы избавиться от вложения, нужно удалить содержимое сообщения, а затем удалить само сообщение.

Если у вас есть команда или что-то полезное и быстрое, пожалуйста, поделитесь со мной!

Спасибо, Ричард, и @JammyDodger!

Моя единственная проблема в том, что мне нужно сделать это для 20 000 постов. Знаете какие-нибудь способы ускорить процесс?

Боюсь, я только в начале своего пути в Discourse, поэтому у меня нет необходимых знаний для этого. :slightly_smiling_face:

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

Post.with_deleted.where('deleted_at is not null').update_all(raw: 'Этот пост был удален', cooked: 'Этот пост был удален')