Консольные команды
Консольные команды 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-places | 1-го числа каждого месяца в 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 # список всех команд