Skip to content

Console commands

Run these in the web container — docker exec, just exec in development, or the platform’s console.

Recovery

All three are idempotent: run one against an account already in the desired state and it prints “already …” and exits 0.

CommandWhat it does
app:admin:create <email>Ensures the address is a verified administrator, creating the account if needed. --full-name, --password; with no password it prompts, or non-interactively generates one and prints it once. An existing account is promoted and verified in place and keeps its password.
app:user:promote <email>Grants ROLE_ADMIN, keeping any other roles.
app:user:verify <email>Marks the email verified and burns any outstanding verification token — including on an already-verified account, since that link logs its bearer straight in. The escape hatch when outbound mail never arrives.

See Recovering an instance.

Scheduled work

These ride the worker’s schedule. Listing them here is not an invitation to cron them separately — a running worker already does — but they are safe to run by hand.

CommandWhat it does
app:purge-expired-exportsDeletes expired data-export archives and rows. Hourly.
app:sweep-ended-trialsDisables ended trials and cancellations, sends survey emails.
app:drain-site-review-outboxPublishes site-review events whose Mercure update never landed. Every five minutes; --limit=<n> to bound a manual pass. Safe to run alongside the worker — the claim is atomic.

Maintenance

CommandWhat it does
app:review:rerender-versionsRe-renders stored HTML for every document version from its Markdown source. For after a renderer change.
app:dev:seedSeeds an empty development database with a verified user, a project and a widget token. Not for production.

Symfony commands worth knowing

Terminal window
bin/console doctrine:migrations:status # pending migrations?
bin/console messenger:failed:show # parked messages
bin/console debug:dotenv # which .env file won
bin/console debug:router # every route