使用SQL查询
如果你对数据库操作比较熟悉,可以直接通过SQL查询来删除或移动旧帖子。这种方法需要一定的数据库操作知识。
示例SQL查询:
删除指定日期之前的所有帖子:
DELETE FROM `dz_forum_thread` WHERE dateline < UNIX_TIMESTAMP('2021-01-01'); DELETE FROM `dz_forum_post` WHERE dateline < UNIX_TIMESTAMP('2021-01-01');
注意:dateline 是帖子创建的时间戳。你需要将 '2021-01-01' 替换为你希望清理的日期。
移动指定日期的帖子到特定版块:
UPDATE `dz_forum_thread` SET fid=X WHERE dateline < UNIX_TIMESTAMP('2021-01-01');
这里 fid 是目标版块的ID,你需要替换 X 为正确的版块ID。
如果你熟悉SQL,可以直接在数据库中运行SQL查询来删除旧帖。例如,要删除所有超过3个月未被回复的帖子,你可以使用以下SQL命令:
DELETE FROM `forum_post` WHERE `dateline` < DATE_SUB(NOW(), INTERVAL 3 MONTH) AND `first` = 0;
注意: 这个命令只会删除回复帖,如果你想删除主题帖,可以将first字段设置为1。例如:
DELETE FROM `forum_post` WHERE `dateline` < DATE_SUB(NOW(), INTERVAL 3 MONTH) AND `first` = 1;
3. 清理附件和图片
删除帖子后,还应清理与这些帖子相关的附件和图片。这可以通过运行以下SQL命令来完成:
DELETE FROM `forum_attachment` WHERE `pid` NOT IN (SELECT `pid` FROM `forum_post`); DELETE FROM `forum_attachment_used` WHERE `aid` NOT IN (SELECT `aid` FROM `forum_attachment`);
4. 优化数据库
在删除大量数据后,运行数据库优化命令来回收空间并提高性能:
OPTIMIZE TABLE `forum_post`, `forum_attachment`, `forum_attachment_used`;