关于主题/帖子持久性的说明

您好,我想就主题/帖子的持久性问题澄清一些事项。我发现有不少帖子指出,主题和帖子在数据库中是软删除的 参考1 参考2。首先,让我说明一下需求:

出于合规原因,在任何时间点,我们都需要备份最近 180 天内的所有帖子。(这是一个金融讨论论坛,因此有此要求)

目前我对 Discourse 基本帖子结构的理解是:
主题是发起讨论的第一条帖子或内容,而对该主题的所有后续回复或该主题中的所有帖子都被视为帖子。

我原本以为数据库中的 topicsposts 表包含原始数据,仅通过一个标志位指示内容是否对普通用户可见。但在我进行实验时发现,帖子内容会被替换为 “(帖子已被作者删除)”。因此,我的问题大致如下:

  1. 在用户删除或编辑帖子/主题后,当前默认的帖子/主题数据持久化策略是什么?
  2. 是否有管理员开关可以更改此行为?
  3. 除了 poststopics 表之外,是否有其他相关表可供参考?我们有一个只读数据库用户,计划通过外部脚本与其交互以执行数据处理。
  4. 用户编辑帖子时,数据是否会保留编辑历史?
  5. [期望功能]:是否存在自动数据备份机制,可将数据以人类可读的格式导出?

再次感谢,非常感谢您的时间 :slight_smile:

我无法就所有情况发表意见,但:

  • 有一个设置可“禁止删除超过 x 时间的帖子”。默认设置(或之前的设置)是允许用户在发帖后 1 年内删除自己的帖子。您可能需要调整此设置,以完全禁止删除操作。
  • 您也可能需要查看“隐形编辑窗口”设置。该功能允许成员在原始发帖时间后的几分钟内编辑帖子,而无需在编辑历史中显示更改。这主要是为了便于修正拼写错误等。针对您的使用场景,您可能需要确保所有编辑内容都会在帖子的历史记录中可见。

这些变通方法很有趣,我会考虑一下,谢谢!