С помощью искусственного интеллекта мы подготовили исчерпывающий список подкоманд для команды discourse.
Командная строка discourse (реализована через script/discourse с использованием гема Thor) предоставляет 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]
- Описание: Восстанавливает резервную копию форума из локального архива
.tar.gz, расположенного в/var/www/discourse/public/backups/default. - Предварительное условие: Требуется сначала выполнить
discourse enable_restore. - Пример:
discourse restore discourse-2026-07-22-120000-v2026xxxx.tar.gz
discourse enable_restore и discourse disable_restore
- Описание: Включает или отключает флаг приложения, разрешающий или запрещающий выполнение задач восстановления через консоль или веб-интерфейс.
- Последовательность использования:
discourse enable_restore
discourse restore <filename>
discourse disable_restore
discourse rollback
- Описание: Откатывает схему и состояние базы данных к моменту перед неудачным выполнением восстановления.
2. Состояние сайта и управление клиентами
discourse enable_readonly и discourse disable_readonly
- Описание: Устанавливает или сбрасывает ключ
READONLY_MODE_KEYв Redis. - Детали:
- Запрещает запись в базу данных, сохраняя возможность чтения сайта пользователями.
- Использует цикл с коротким временем жизни (TTL), который обновляется во время действия режима, предотвращая постоянную блокировку сайта в случае сбоя терминальной сессии.
discourse request_refresh
- Описание: Отправляет системное сообщение через MessageBus, указывая всем активным веб-сессиям перезагрузить страницу. Полезно после развертывания обновлений файлов или глобальных изменений темы.
3. Переотображение базы данных (Remapping)
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]
- Описание: Импортирует архив JSON, созданный командой
export_topics, в целевой экземпляр Discourse.