Можно ли удалить посты из базы данных?

Заранее приношу извинения, если вопрос покажется слишком простым.
У меня есть доступ к базе данных Discourse (через плагин).
Могу ли я удалить некоторые посты (которые я сам создал в большом количестве во время тестирования) с помощью запроса?

delete from posts where id in (123, 567, ... и т. д.)

Безопасно ли выполнять такие операции?

Если вы получаете доступ к базе данных через плагин Data Explorer, обратите внимание, что этот плагин позволяет выполнять только запросы только для чтения. Использовать его для записи в базу данных невозможно.

Полностью удалить сообщения можно через консоль Rails, но мы не рекомендуем этого делать. Лучший подход — использовать плагин Data Explorer для поиска сообщений, которые вы хотите удалить, а затем воспользоваться инструментами, доступными в интерфейсе пользователя Discourse, для их удаления.

Если по какой-то причине этот подход вам не подходит, дайте нам знать, и мы предоставим информацию об удалении сообщений через консоль Rails.

Я не эксперт в этом движке, но предполагаю, что это небезопасно, потому что в таком случае вы удалите запись только из таблицы posts, а у одного поста могут быть связанные записи в других таблицах и множество мета-данных, привязанных к этому post_id. Впоследствии что-то может сломаться. Поэтому вам следует использовать встроенные инструменты для удаления постов.

Спасибо, Николай. Я тоже так думаю… Но вдруг появятся настоящие эксперты по этому приложению, и они скажут: «Не стесняйтесь, удаляйте!» )))

За исключением того, что ни один эксперт не считает это допустимым: * Это не рекомендуется. * Это не входит в дорожную карту Discourse, и планов по добавлению этой функции нет. * Разработка не ведется, поскольку удаление навсегда нельзя отменить. * Никто не оплатил разработку этой функции. Никто из тех, кто запрашивал эту функцию, не реализовал её, так как это либо слишком сложно, либо не оправдывает затрат на разработку. Ознакомьтесь с примерами, подтверждающими эти пункты, в следующей теме: How to remove post completely?

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

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

Я никогда не встречал ни одного «ON DELETE CASCADE». Зато я часто видел «has_many», «dependent:», «Indexes» и «ensure_consistency» во множестве файлов моделей. Существует файл задания discourse/app/jobs/scheduled/ensure_db_consistency.rb at main · discourse/discourse · GitHub

Лично, насколько мне нравится Discourse, я бы не ожидал, что они будут разбираться с последствиями действий, выходящих за рамки базовых механизмов защиты. То есть я часто ломаю собственный код, но полностью беру на себя ответственность, когда это происходит. Но это я. И, конечно, может существовать какой-то базовый код, о котором я пока не знаю.

Кроме того,

Но в случае автора топика это было бы бессмысленно.