Справочник CLI¶
Все команды запускаются через CLI плагинов Grav из корня установки Grav:
Краткий справочник¶
| Команда | Что делает | Безопасна на работающем форуме? |
|---|---|---|
status |
Показывает состояние подключения, схемы, заданий и планировщика | Да, только чтение |
migrate |
Применяет ожидающие миграции базы данных | Да, с блокировкой запуска |
work |
Один раз обрабатывает фоновые задания | Да |
recount |
Исправляет денормализованные счётчики | Да |
reindex |
Перестраивает полнотекстовый поисковый индекс | Да, поиск неполон во время работы |
rerender |
Повторно отрисовывает сохранённые сообщения через цепочку обработки текста | Да |
integrity |
Отчёт о согласованности только для чтения | Да, только чтение |
import-discourse |
Импортирует резервную копию Discourse | Используйте режим обслуживания |
import-xenforo |
Импортирует дамп XenForo 2 и папки с файлами | Используйте режим обслуживания |
files-sync |
Отправляет локальные blob-объекты в S3/R2 | Да, идемпотентна |
avatars-sync |
Переносит старые аватары в blob-хранилище | Да, идемпотентна |
ai-scan |
Один раз запускает проверку спама с помощью ИИ | Да |
status¶
Выводит движок базы данных и состояние подключения, сколько шагов схемы применено, есть ли ожидающие миграции, количество фоновых заданий и запускался ли недавно планировщик Grav. Это первая команда, которую стоит запустить, если что-то не происходит: отсутствие писем, значков и очистки почти всегда означает, что планировщик не установлен.
Та же информация есть в Admin → Forum → Status, включая точную строку crontab для вашей установки.
migrate¶
bin/plugin forum-pro migrate --status # показать, что будет выполнено
bin/plugin forum-pro migrate # применить
Применяет ожидающие миграции. Миграции берут блокировку запуска базы данных, поэтому два одновременных запуска никогда не применят один шаг дважды, и команду безопасно вызывать из скрипта развёртывания.
То, применяются ли миграции автоматически, определяется параметром auto_migrate. См. Установку.
work¶
Один раз обрабатывает очередь фоновых заданий: доставку почты, выдачу значков, очистку по срокам хранения, очистку сессий, подсчёт просмотров и запланированные проверки.
В рабочем окружении эта команда запускается планировщиком Grav. Вызывайте её вручную, чтобы проверить изменение настроек или разобрать накопившуюся очередь, не дожидаясь следующего тика.
Размер пакета и время выполнения ограничены блоком jobs:
recount¶
Пересчитывает денормализованные счётчики (число тем, сообщений, ответов и реакций) по исходным строкам.
Forum Pro поддерживает эти счётчики в актуальном состоянии при создании и удалении контента, потому что подсчёт строк при каждом просмотре страницы не масштабируется. Запускайте recount после любой операции, записавшей данные в базу в обход обычного пути публикации, прежде всего после импорта.
reindex¶
Удаляет и заново строит полнотекстовый поисковый индекс из таблицы сообщений. Запускайте после импорта, смены search.engine или после rerender.
Безопасно на работающем форуме. Результаты поиска просто будут неполными, пока команда выполняется.
rerender¶
Повторно отрисовывает каждое сохранённое сообщение через цепочку Markdown и обработки текста, включая ссылки на упоминания. Запускайте после изменения, влияющего на отображение сообщений: новая версия codesh, изменение настройки Markdown, исправление отображения упоминаний или плагин, который начал слушать onForumProRenderBody. Отрендеренный HTML хранится вместе с сообщением, поэтому новый слушатель доберётся до существующих сообщений только через эту команду.
После неё запустите reindex, поскольку поиск индексирует отрендеренный текст.
integrity¶
Отчёт только для чтения о согласованности, включающий висячие ссылки и расхождение счётчиков. Он ничего не меняет, поэтому его безопасно запускать в любое время и полезно после импорта или крупного действия модерации. Если он сообщает о расхождении счётчиков, исправлением будет recount.
import-discourse¶
bin/plugin forum-pro import-discourse backup.sql.gz \
--source-url https://discourse.example.com \
--download-files
| Параметр | Назначение |
|---|---|
--source-url |
Базовый URL старого форума для перезаписи ссылок и загрузки файлов |
--download-files |
Перенести упомянутые изображения, вложения и аватары в ваше хранилище |
--files-only |
Пропустить контент и выполнить только проход по файлам |
--delay-ms |
Задержка в миллисекундах между загрузками файлов |
Команда идемпотентна и поддерживает возобновление. Полное руководство см. в разделе Миграция из Discourse.
import-xenforo¶
bin/plugin forum-pro import-xenforo dump.sql.gz \
--source-url https://forum.example.org \
--xf-root /path/to/xenforo
| Параметр | Назначение |
|---|---|
--source-url |
Базовый URL старого форума, включая подпапку, для перезаписи ссылок |
--xf-root |
Установка XenForo; из неё читаются internal_data/attachments и data/avatars |
--attachments-dir, --avatars-dir |
Переопределить каждую папку отдельно |
--skip-files |
Только данные, без вложений и аватаров |
--prefixes tag|title|skip |
Префиксы тем как метки (по умолчанию), в заголовке или отброшены |
--skip-pms |
Не импортировать беседы |
--default-section |
Название раздела для форумов без категории верхнего уровня |
Читает обычный дамп mysqldump или экспорт phpMyAdmin, с gzip или без, не требуя сервера MySQL. Команда идемпотентна и поддерживает возобновление. Полное руководство, включая сопоставление реакций и чтение отчёта, см. в разделе Миграция из XenForo.
files-sync¶
Отправляет существующие локальные blob-объекты в настроенный S3-совместимый бакет. Команда идемпотентна, поэтому прерванный запуск продолжается при повторном выполнении. См. Файловое хранилище.
avatars-sync¶
Переносит аватары, хранящиеся вне blob-хранилища (из старой структуры или импорта), в контентно-адресуемое хранилище. Команда идемпотентна.
ai-scan¶
Запускает проверку спама с помощью ИИ один раз и немедленно, не дожидаясь ежечасного расписания. Требует ai_spam.enabled и плагин AI Pro. Полезно, чтобы проверить настройки провайдера, прежде чем доверять им работу без присмотра.
Типичные последовательности¶
После импорта
После изменения отображения сообщений
Перенос файлов в R2
В скрипте развёртывания