Skip to content

Консольные команды ​

Консольные команды JournalPHP выполняют фоновые задачи платформы; большинство из них запускается планировщиком автоматически.

Обзор ​

JournalPHP использует Artisan — консоль Laravel. Команды выполняются внутри контейнера app:

bash
# локальное окружение
docker compose exec app php artisan <команда>

# продакшен
docker compose -f docker-compose.prod.yml exec app php artisan <команда>

Команды JournalPHP ​

КомандаНазначение
users:unbanУдаляет баны, срок которых истёк: баны на платформе и баны в темах
users:purge-deletedОкончательно удаляет аккаунты, срок восстановления которых истёк
rating:update-place-historyСтавит в очередь пересчёт мест в рейтинге авторов
rating:save-monthly-places {--month=}Сохраняет итоговые места топа авторов и топа комментаторов за месяц. По умолчанию — за прошлый месяц, --month=2026-08 — за указанный
achievements:award {--full}Выдаёт достижения пользователям с новой активностью с прошлого запуска. С --full — проверяет всех пользователей и все правила
topics:update-activity-scoreПересчитывает активность тем за 7 дней
post-counts:refreshПересчитывает счётчики всех постов
media:cleanup-orphaned {--limit=500}Удаляет файлы, загруженные более 30 минут назад и не привязанные к посту, комментарию или другой записи
moderation:comments {--sync}Запускает AI-модерацию очередной пачки непроверенных комментариев. С --sync — сразу, без очереди
subscriptions:payments:check-pending {--minutes=10} {--queue=subscription-payments}Ставит в очередь проверку платежей в статусе ожидания, обновлённых за последние --minutes минут
subscriptions:auto-renewЗапускает автопродление подписок, срок которых истёк за прошлый час
notifications:reactions-digestОтправляет письма со сводкой реакций за прошлый час
notifications:daily-digestОтправляет письмо «Интересное за день»
notifications:blog-statsОтправляет статистику блога за 7 дней

Расписание ​

КомандаПериодичность
rating:update-place-historyкаждую минуту
subscriptions:payments:check-pendingкаждую минуту
moderation:commentsкаждую минуту
media:cleanup-orphanedкаждые 30 минут
users:unbanкаждый час
users:purge-deletedкаждый час
subscriptions:auto-renewкаждый час
achievements:awardкаждый час
notifications:reactions-digestкаждый час в :05
topics:update-activity-scoreдважды в день
achievements:award --fullкаждый день в 03:30
notifications:daily-digestкаждый день в 09:00
notifications:blog-statsпо понедельникам в 10:00
rating:save-monthly-places1-го числа каждого месяца в 00:10

Расписание выводит команда:

bash
php artisan schedule:list

Команды Laravel ​

База данных ​

bash
php artisan migrate --force        # применить миграции
php artisan migrate:status         # статус миграций

Кэш ​

bash
php artisan optimize:clear         # очистить все кэши

Очереди ​

bash
php artisan horizon:status         # состояние Horizon
php artisan horizon:terminate      # перезапустить воркеры, Supervisor поднимет их снова
php artisan queue:failed           # упавшие задачи
php artisan queue:retry all        # повторить упавшие задачи

Поиск ​

bash
php artisan scout:import "App\Models\Post"
php artisan scout:import "App\Models\User"
php artisan scout:flush "App\Models\Post"

Индекс синхронизируется и из админ-панели; см. Поиск.

Прочее ​

bash
php artisan about                  # сводка об окружении
php artisan tinker                 # интерактивная консоль
php artisan list                   # список всех команд

Released under the MIT License.