借助一些 AI 的帮助,以下是 discourse 命令的子命令综合列表。
discourse CLI(通过 script/discourse 使用 Thor gem 实现)提供了 13 个核心子命令,分为 备份与恢复、站点管理与模式、数据库工具 和 数据迁移(导入/导出) 四类。
命令快速参考
| 类别 | 子命令 | 主要功能 |
|---|---|---|
| 备份与恢复 | backup |
生成完整或仅数据库的备份归档。 |
restore |
将 .tar.gz 备份文件恢复到实例中。 |
|
enable_restore |
授予执行恢复命令的权限。 | |
disable_restore |
撤销执行恢复的权限。 | |
rollback |
在恢复失败后回滚数据库状态。 | |
| 站点模式 | enable_readonly |
在整个站点切换临时只读模式。 |
disable_readonly |
移除只读模式以恢复正常的站点写入。 | |
request_refresh |
向所有已连接的活跃客户端触发浏览器刷新提示。 | |
| 数据库操作 | remap |
在数据库表中执行全局文本查找和替换。 |
| 数据迁移 | export_category |
导出单个分类、其主题及相关用户。 |
import_category |
将分类归档导入当前论坛。 | |
export_topics |
按 ID 导出特定主题及其作者/回复者账户。 | |
import_topics |
将主题归档导入当前论坛。 |
子命令详细文档
1. 备份与恢复命令
discourse backup [FILENAME]
-
描述: 创建论坛数据库和资产的完整备份。
-
标志:
-
--sql-only:(布尔值,默认:false)仅转储 PostgreSQL 数据库,跳过本地上传的文件。 -
--s3-uploads:(布尔值,默认:false)强制将存储在 S3 中的资产包含在备份归档中(设置--sql-only时忽略)。 -
示例:
discourse backup
discourse backup --sql-only
discourse restore [FILENAME]
- 描述: 从位于
/var/www/discourse/public/backups/default的本地.tar.gz归档中恢复论坛备份。 - 先决条件: 需要先运行
discourse enable_restore。 - 示例:
discourse restore discourse-2026-07-22-120000-v2026xxxx.tar.gz
discourse enable_restore & discourse disable_restore
- 描述: 切换允许或限制控制台/基于 Web 的恢复任务的应用程序标志。
- 使用顺序:
discourse enable_restore
discourse restore <filename>
discourse disable_restore
discourse rollback
- 描述: 将数据库模式和状态回滚到恢复执行失败之前的点。
2. 站点状态与客户端控制
discourse enable_readonly & discourse disable_readonly
- 描述: 在 Redis 中设置或清除
READONLY_MODE_KEY。 - 详情:
- 冻结数据库写入,同时保持站点可供用户读取。
- 使用在激活时刷新的短生存时间 (TTL) 循环,防止终端会话崩溃时站点永久锁定。
discourse request_refresh
- 描述: 通过 MessageBus 分派系统消息,指示所有在线 Web 会话重新加载网页。在部署资产更新或全局主题更改后非常有用。
3. 数据库重映射
discourse remap [OPTIONS] FROM TO
-
描述: 在数据库的文本列中执行直接的字符串查找和替换。在更新域名、CDN 路径或图像上传前缀时至关重要。
-
标志:
-
--global:(布尔值)扫描并重映射所有表,而不仅仅是标准内容表。 -
--regex:(布尔值)将FROM参数评估为正则表达式,而不是字面字符串。 -
示例:
discourse remap "old-domain.com" "new-domain.com"
discourse remap --global "/uploads/default/" "/cdn-uploads/"
4. 选择性数据导入与导出
discourse export_category [CATEGORY_ID]
- 描述: 将单个分类(包括所有嵌套主题、帖子和参与用户配置文件)序列化为 JSON 归档文件。
discourse import_category [FILE_PATH]
- 描述: 读取由
export_category创建的归档,并将分类数据合并到目标实例中。
discourse export_topics [TOPIC_IDS...]
- 描述: 接受一个或多个空格分隔的主题 ID,并导出主题、帖子和相关用户账户。
- 示例:
discourse export_topics 102 105 210
discourse import_topics [FILE_PATH]
- 描述: 将由
export_topics创建的 JSON 归档导入到目标 Discourse 实例中。